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

C# 使用C将应用程序发送到特定屏幕#,c#,.net,multiscreen,C#,.net,Multiscreen,我如何将一个不是我的应用程序(想想:任何第三方应用程序)的应用程序(想想WM_uuu消息?)发送到多屏幕系统上的不同屏幕?是否有特定的windows消息代码可以发送到窗口或进程句柄以执行此操作?我从未尝试过此操作,但如何使用?该功能将允许您发送所需的消息。由于您已将问题标记为使用C#,因此必须使用p/invoke来使用它。这是一个例子 有关获取屏幕位置和大小的信息,请参阅.Net库中的类。有一个函数被调用,一个属性被调用,返回用户拥有的所有有效屏幕的数组。FromHandle()将告诉您应用程序

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

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


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

您需要使用p/Invoke和函数

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


此外,如果您不知道,您的项目很可能也需要
FindWindowByCaption
功能。

您可能会编辑您的问题-“不是当前应用程序”令人困惑。你的意思是一个应用程序控制另一个应用程序的位置吗?我编辑了我的问题以澄清。我指的是任何第三方应用程序,而不是我正在编写的应用程序,因此我无法控制源代码。我不知道这个应用程序,它是否可以处理多个屏幕?