c# - 将 key 发送到 Windows 桌面

标签 c# windows

我想构建一个应用程序以编程方式将击键发送到 Windows 桌面,而不是指定的窗口。 例如,如果我们按下箭头键,那么桌面上的图标就会被选中…… 可能吗?

最佳答案

SendInput windows API 会做你想做的事。事实上,将输入发送到目标窗口是一项更困难的任务。 SendInput 会将输入发送到与调用此 API 的进程的 Windows session 对应的虚拟输入队列。如果您愿意,输入或按键将落在任何事件的桌面上,并落在前台的任何窗口内。

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

关于c# - 将 key 发送到 Windows 桌面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709991/

相关文章:

c# - 自定义配置部分 : Could not load file or assembly

c++ - 如何在 Windows 中获取所有附加虚拟磁盘的列表?

c++ - 如何在C++中创建虚拟存储空间?

windows - 当我的 Git 存储库在 Linux 上时如何在 Windows IDE 上工作(使用 VMPlayer)

python - 如何使用 socketserver 接收大文件?

c# - AudioClip 在 Trigger 上只播放一次

c# - "is"关键字是如何工作的?

c# - Linq to XML 的条件输出

c# - 从 DbDataReader 读取/序列化时避免代码重复?

windows - 关闭事件对象是否会导致等待该对象的线程唤醒?