c# - 如何在 C# 中使用 sendkey 消息定位虚拟桌面?

标签 c# winapi

假设我已经安装了 http://technet.microsoft.com/en-us/sysinternals/cc817881

我希望能够使用 win32 api 发送消息,但目标是第二个虚拟桌面,而我将留在第一个虚拟桌面上。

如何在 C# 中做到这一点?

更新:对于上下文,我想要的是在我在第一个桌面上工作时在驻留在第二个虚拟桌面中的应用程序上以定期间隔在后台自动执行手动任务。

最佳答案

SendKeysSendMessage 是非常不同的东西。完全不清楚您使用的是哪一个。

你不能用SendKeys“定位”任何东西。在 Windows 中唯一可以接收键盘和鼠标输入的实体是具有焦点的窗口。由于虚拟桌面上显示的内容不会获得焦点,因此您不能这样做。

但是您可以使用 SendMessage function将窗口消息发送到您希望的任何窗口。 SendMessage 函数接受相关窗口的句柄作为其第一个参数 (HWND)。该窗口是聚焦的、事件的、显示的、虚拟桌面上的还是其他什么都没有关系。

关于c# - 如何在 C# 中使用 sendkey 消息定位虚拟桌面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769908/

相关文章:

c# - UnauthorizedAccessException app.config c#

C# 在工具箱中包含派生控件

windows - 为什么 Unicode Windows 标题栏(仅)是问号(?)代码点?

c++ - 更改可警告/可等待线程的上下文

ChangeDisplaySettings 成功但不执行任何操作。我如何让它工作?

c# - MVC 5 中的数据注释

c# - DataContext 类是特定于 SQL Server 的吗?

c# - 尝试在数据集中的表之间创建关系时出现异常 : System. NullReferenceException

c++ - 如何获得 winMain hInstance? Windows 32 编程

c++ - 我是否必须分配SLIST_HEADER?