使用C#将应用程序发送到特定屏幕

时间:2009-08-20 21:32:43

标签: c# .net multiscreen

我怎样才能将一个应用程序(想想WM_消息?)我的应用程序(想想:任何第三方应用程序)发送到多屏系统上的不同屏幕?是否有可以发送到窗口或进程句柄的特定Windows消息代码来执行此操作?

2 个答案:

答案 0 :(得分:1)

我从未尝试过这个,但是如何使用WM_MOVE呢? SendMessage功能允许您发送所需的消息。由于您已将问题标记为使用C#,因此您必须使用p / invoke来使用它。这是一个example

关于获取屏幕位置和大小,请参阅.Net库中的Screen类。有一个名为FromHandle()的函数和一个名为AllScreens的属性,它返回用户拥有的所有有效屏​​幕的数组。 FromHandle()会告诉你应用程序当前占用的屏幕最多(在您的情况下这可能有用也可能没用)。这将允许您在将消息发送到该应用程序之前计算第三方应用程序的所需位置。

答案 1 :(得分:1)

您需要使用P / Invoke和MoveWindow功能。

编辑:它处理多个屏幕就好了。 MoveWindow将您的屏幕视为一个大显示屏,并相应地接受参数。您可以使用.Net Screen类来查找所需屏幕的边界,然后调用MoveWindow以获取所需的窗口。

此外,如果您不了解它,您的项目很可能也需要FindWindowByCaption功能。