有什么方法可以通过另一个屏幕中的“处理”来启动/提供程序吗?
有人在这里问,但没有答案。
注意:这不是我的应用程序中的表单,我询问的是在另一个屏幕上运行外部程序!
由于该窗口不是您的窗口,因此只能通过调用Windows API来移动它。您将必须执行以下操作:
启动该过程。
使用FindWindow检索的窗口句柄。如果该窗口尚不存在,则表明该进程尚未创建。睡眠500毫秒,然后重试。(但是不要进入无限循环;如果在合理的超时后找不到窗口,请停止。)
FindWindow
使用SetWindowPos改变窗口的位置。
SetWindowPos
如果您不知道窗口的标题,则不能使用FindWindow。在这种情况下,
启动流程并通过检索获取流程句柄Process.Handle。
Process.Handle
使用EnumWindows检索所有窗口。对于每个窗口,用于GetWindowThreadProcessId检查它是否属于您的进程。如果没有任何窗口属于您的进程,请等待并继续尝试。
EnumWindows
GetWindowThreadProcessId
当然,您可以Screen.AllScreens[n].WorkingArea用来检索所需屏幕的位置和大小,然后可以相对于该窗口定位窗口。
Screen.AllScreens[n].WorkingArea