0

我正在使用SendKey这些功能将击键发送到由其窗口名称定位的窗口

[DllImport("user32.dll")]
public static extern int FindWindow(
    string lpClassName, // class name 
    string lpWindowName // window name 
    );

[DllImport("user32.dll")]
public static extern int SetForegroundWindow(
    int hWnd // handle to window
    );

是否有另一种方法可以将击键发送到窗口而不将其置于前台?

我在许多窗口之间切换并且SendKey正在犯一些我无法控制的错误,我不能使用SendWaitno 或者放置一些线程延迟,它必须是最快的,

我只是在看它是如何完成的。

4

2 回答 2

2

这个问题已经在 SO 上得到解决:

如何在无需使用 Windows API 激活的情况下将击键发送到窗口?

于 2009-09-12T18:32:13.857 回答
0

我认为 Windows 体系结构不会允许这样做,因为只有前台窗口应该接收击键或任何用户活动。

另一种方法可能是创建虚拟桌面,在该虚拟桌面中移动您的桌面并传递屏幕上不可见的键。

于 2009-09-12T18:32:53.503 回答