winapi – 如何将密钥笔划发送到窗口而不必使用Windows API激活?

我已经提出了一个应用程序,将命令发送到激活的窗口。我想在我的进程运行时能够使用计算机,因为只要我将焦点切换到另一个窗口,通过发送键发送的关键笔划将转到我刚刚切换到的窗口。

目前我从Windows API使用FindWindow,IsIconic和ShowWindow。我必须检查窗口是否与FindWindow在一起,并将我的对象设置为与该调用返回的特定窗口,然后检查它是否被IsIconic最小化并调用ShowWindow,如果是,然后最后我必须调用Interaction.AppActivate将焦点设置到该窗口。所有这一切都在我甚至发送关键笔划之前完成。似乎应该有一种方法来发送关键笔划,而不必显示窗口并激活它。最重要的是我的应用程序运行的关键笔划,我无法在我的电脑上做任何事情。

好的,这是令人失望的,我相信,但你从根本上不能这样做,100%的可靠性。

Windows假定活动窗口是获得键盘输入的窗口。伪造键盘输入的正确方法是使用SendInput,您会注意到它仅将消息发送到活动窗口。

话虽如此,您可以SendMessage WM_KEYUPWM_CHARWM_KEYDOWN消息(取决于WndProc接收它们)可能会消失。但记住,在某些情况下,它的going to break期间。

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...