标签: windows-8

C# wpf 窗口 this.Top 在 Win8 上返回错误位置?

我对此有点困惑。我们有 ac#/WPF 屏幕捕获工具,可以使用 Graphics.CopyFromScreen 捕获桌面的一部分。

它可以在数十种不同的机器上正常运行,包括 XP、Win7 和至少一台 Windows8 虚拟机。

我们遇到过一台装有 Win8 的 Acer ZS600,我们看到了一种我无法理解的奇怪效果。

当您捕获时,它会捕获尺寸正确但位置错误的图像。它向顶部和左侧偏移。不是固定金额。当捕获窗口位于屏幕 0,0 位置时,效果很好,但当您将捕获窗口移离原点时,偏移量会增加。

我查看了代码,发现窗口位置(this.Top 和 this.Left)报告了错误的数字。

更奇怪的是,我们在 Acer Z5771 上尝试过这一点,除了使用 Windows 7 之外,它的硬件设置几乎相同。我们尝试更新 Zs600 显卡驱动程序,但没有效果。

有谁理解这一点,或建议修复或解决方法?

编辑:我已经编写了一个简单的应用程序,它在有问题的机器上显示了效果。在我的开发机器上它工作正常。此处下载:https ://s3-eu-west-1.amazonaws.com/kdownload/Tools/CaptureTool_app.zip

或者下载编译版本:https://s3-eu-west-1.amazonaws.com/kdownload/Tools/capturetest.exe

编辑:这是问题系统上使用的捕获应用程序的两个屏幕截图。https://s3-eu-west-1.amazonaws.com/kdownload/Tools/ProblemScreencap.png(编辑 - 在该屏幕截图中,我将 x&y 显示的数字与宽度和高度进行了切换,现在已在上传的代码中修复,请忽略此)

c# wpf screen-capture windows-8

1
推荐指数
1
解决办法
1656
查看次数

SQLite-net 中的名称表

我正在构建一个使用 SQLite 作为存储数据库的 Windows 8 C#/XAML 应用程序,我正在尝试使用 SQLite-net 语法创建多个表。

从我到目前为止的研究来看,一个表是基于一个类创建的。首先,我通过以下方式创建了一个“帐户”类:

public class Account
{
    [PrimaryKey, AutoIncrement]
    public int ID { get; set; }

    public string Name { get; set; }
    public string Type { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

然后创建一个表并通过以下方式在代码中输入初始数据:

    private static readonly string _dbPath =
        Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "data.sqlite");


        using (var db = new SQLite.SQLiteConnection(_dbPath))
        {
            db.CreateTable<Account>();

            db.RunInTransaction(() =>

               db.Insert(new Account()
                    {
                        Name = "MyCheckingAccount",
                        Type = "Checking",
                    })
                    );
        }
Run Code Online (Sandbox Code Playgroud)

我想创建多个帐户表,但db.CreateTable<Account>()语法只是创建一个表,数据插入到列中,db.Insert().我看不到在哪里输入表本身的名称。

我如何创建多个表,即一个名为“BusinessAccounts”和另一个基于 Account 类的“PersonalAccounts”?

有没有办法用 SQLite-net 做到这一点?或者我是否需要以某种方式明确写出 SQLite …

c# sqlite windows-8 windows-runtime sqlite-net

1
推荐指数
1
解决办法
3682
查看次数

使用 CreateProcess 调试

我使用的是CreateProcessDEBUG_ONLY_THIS_PROCESS标志。新进程已创建,但新运行的应用程序没有执行任何操作,当我使用任务管理器查看进程列表时,我看到的只是仅分配了 70KB 内存的 exe 文件的名称!

如果我创建没有DEBUG_ONLY_THIS_PROCESS标志的进程,应用程序将完美运行。

这是我的代码:

function TDebugger.StartDebug;
var
  ProcInfo: TProcessInformation;
  ProcessCreationFlags: Cardinal;
  StartupInfo: TStartupInfo;
  DE: TDebugEvent;
begin
  // == init process info
  ZeroMemory(@ProcInfo, SizeOf(TProcessInformation));
  // == init startup info
  ZeroMemory(@StartupInfo, SizeOf(TStartupInfo));
  with StartupInfo do begin
    cb := SizeOf(TStartupInfo);
    lpDesktop := '';
    dwX := CW_USEDEFAULT;
    dwY := CW_USEDEFAULT;
    dwXSize := CW_USEDEFAULT;
    dwYSize := CW_USEDEFAULT;
    wShowWindow := SW_SHOWDEFAULT;
  end;
  // == Create the process
  ProcessCreationFlags := DEBUG_ONLY_THIS_PROCESS;
  if (not CreateProcess(PWideChar(Path), Nil, Nil, Nil, False, …
Run Code Online (Sandbox Code Playgroud)

delphi winapi windows-8

1
推荐指数
1
解决办法
1005
查看次数

E_INVALIDARG 一个或多个参数无效。- 创建设备

我有一个 d3dDevice:

ComPtr<ID3D11Device1>d3dDevice;
Run Code Online (Sandbox Code Playgroud)

我在这里将它用于 dxgiDevice:

    ComPtr<IDXGIDevice3> dxgiDevice2;

    HRESULT hr;

    hr = d3dDevice.As( &dxgiDevice2 ); // S_OK

    hr = d2dFactory->CreateDevice( dxgiDevice2.Get(), d2dDevice.GetAddressOf() ); // E_INVALIDARG One or more arguments are invalid

    hr = d2dDevice->CreateDeviceContext(
        D2D1_DEVICE_CONTEXT_OPTIONS_NONE,
        &d2dDeviceContext
        );
Run Code Online (Sandbox Code Playgroud)

为什么在运行时会发生此错误?

http://msdn.microsoft.com/en-us/library/windows/desktop/dn280482(v=vs.85).aspx

与问题相关的全部代码:http : //pastebin.com/P7Rs9xdh

c++ directx windows-8

1
推荐指数
1
解决办法
5523
查看次数

数组正在影响其他数组值C#

static int[] scores = new int[100];
static int[] scorescopy;
public static int orderscores()
{
   scorescopy = scores;
    Array.Sort(scorescopy);
    int sortingtoolb = 0;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我试图获取我的初始数组的副本,然后尝试对该副本进行排序.但是,当我使用Array.Sort()函数时,我的第一个数组也会继续排序,但我想保留它.我试图在scorecopy上取消新的声明,但这并没有影响结果.

另外,有没有办法将数组中未使用的变量保持为null?(如果我没有使用它的所有部分,我会在数组的开头得到一堆0).

我在运行Windows 8.1 Pro的系统上使用Visual Studio Express 2012 for Windows 8.

c# arrays sorting windows-8

1
推荐指数
1
解决办法
63
查看次数

Delphi XE5能否为Windows 8生成应用程序?

我很好奇我可以在Delphi XE5中为Windows 8商店构建应用程序吗?
(你知道,看起来像瓷砖的那些.)

我搜索过Embarcadero的网站.它说明了这一点

您的应用程序将在具有Intel和Intel Atom硬件的Windows台式机和基于x86的平板电脑上运行,例如Microsoft Surface Professional,HP的Slate平板电脑,华硕等,以及来自Acer,Samsung等的基于AMD处理器的平板电脑.

从此描述中,似乎支持Windows应用商店应用.我对吗?

delphi windows-8 delphi-xe5

1
推荐指数
1
解决办法
381
查看次数

最小化时Windows应用程序"暂停"

我有一个Windows商店应用程序.该应用程序通过传递流媒体在MediaElement中播放音频,并在屏幕上随着音频的进展进行一些活动.但是当应用程序最小化时,音频"暂停"和活动,当应用程序最大化时,它将恢复.当应用程序最小化时,"OnSuspending"事件也不是触发器(我在该功能上设置断点并且它没有中断).

如何在最小化时停止应用程序"暂停".

c# windows-8 windows-store-apps windows-8.1

1
推荐指数
1
解决办法
1389
查看次数

如何在Windows 8上使CheckBox更大

如何在Windows 8上使CheckBox更大?

我已经了解LayoutTransform,但看起来在Windows 8上没有这个属性:

<CheckBox>
<CheckBox.LayoutTransform>
<ScaleTransform ScaleX="2" ScaleY="2" />
</CheckBox.LayoutTransform>
</CheckBox>
Run Code Online (Sandbox Code Playgroud)

xaml windows-8 windows-8.1

1
推荐指数
1
解决办法
1231
查看次数

通过Winspool打印

我正在尝试为网站设置一种打印服务,以便与(pdf,html,excel)进行通信并发送可打印的文档.我决定去.

我在下面创建了简单的程序.在某些电脑上,它可以在其他电脑上工作(Windows 7)(Windows 8)它不起作用(右).当它不起作用时,作业在打印队列中可见不到一秒钟然后消失.代码不输出任何错误.我在Windows事件日志中找不到任何内容.

我也在c ++中尝试了一个RawPrinter示例,我可以在网上找到但是显示了相同的行为.

有谁知道我做错了什么?:(

package main

import (
    "fmt"
    "code.google.com/p/brainman/printer"
)


func main() {
    defaultPrinterName, _ := printer.Default()
    fmt.Println(defaultPrinterName)
    p, err := printer.Open(defaultPrinterName)

    if err != nil {
        fmt.Println("Open failed: %v", err)
    }

    defer p.Close()

    err = p.StartDocument("my document", "RAW")

    if err != nil {
        fmt.Println("StartDocument failed: %v", err)
    }

    defer p.EndDocument()

    err = p.StartPage()

    if err != nil {
        fmt.Println("StartPage failed: %v", err)
    }

    str := "testing 123"
    mySlice := []byte(str)

    _, err = p.Write(mySlice)

    if …
Run Code Online (Sandbox Code Playgroud)

winapi go windows-8 print-spooler-api

1
推荐指数
1
解决办法
673
查看次数

如何在Windows 8 Toast通知中添加按钮?

我正在开发一个应用程序,我正在使用Windows 8 Toast通知

我需要的是显示通知时我需要两个按钮; 第一个被解雇(我们在示例中有这个)和第二个将在我的代码中实现事件,如果用户按下它我需要执行代码应用程序.

这是一个示例,显示Windows 8 Toast通知上的按钮,但我无法重命名(贪睡)按钮文本,并且无法在我的代码中添加其事件处理程序.

string toastXmlString =
"<toast duration=\"long\">\n" +
"<visual>\"<binding template=\"ToastText02\">\n" +
"<text id=\"1\">Alarms Notifications SDK Sample App</text>\n" +
"<text id=\"2\">" + alarmName + "</text>\n" +
"</binding>\n" +
"</visual>\n" +
"<commands scenario=\"alarm\">\n" +
"<command id=\"snooze\"/>\n" +
"<command id=\"dismiss\"/>\n" +
"</commands>\n" +
"</toast>\n";
Run Code Online (Sandbox Code Playgroud)

这是结果:

演示

谢谢

c# notifications toast windows-8 windows-runtime

1
推荐指数
1
解决办法
669
查看次数