2013-03-29 36 views
1

我想构建一个应用程序,以编程方式将按键发送到Windows桌面,而不是指定的窗口。 例如,如果我们打箭头键,然后桌面上的图标被选中... 这可能吗?发送密钥到Windows桌面

+1

Windows桌面是一个可指定的窗口.... –

回答

2

SendInput的Windows API会做你想做的。实际上,将输入发送到目标窗口是一项更困难的任务。 SendInput会将输入发送到与调用此API的进程的Windows会话相对应的虚拟输入队列。输入或键,如果你愿意的话,将登陆在任何活动的桌面上,并且在任何处于前景的窗口内。

如果显示桌面图标的Listview控件是前景窗口,那么您要发送的箭头键将移动选择内容,否则它可能会在记事本上移动光标(如果记事本是前景窗口)。 注意:顶部的窗口不一定是前台窗口。查看SetForegroundWindow API以了解更多关于前景窗口的含义。