Ale*_*nfi 5 c# windows pinvoke multiple-monitors process
我正在编写一个小工具,可以在特定屏幕上打开程序,这样我就可以将我们的监控屏幕(1 台机器有 2 个屏幕)设置为夜间重新启动,并让它在启动时将监控网页恢复到正确的屏幕。我想通过使用 .NET 的 System.Diagnostics.Process 类来完成此任务。
我已经看到可以打开一个进程,然后使用 P/Invokes 将其移动到某处(打开记事本到屏幕上的特定位置,并达到所需的大小?),但是我想在应用程序打开之前设置目标屏幕,以便例如,Kiosk 模式下的 Chrome 通过此设置可以正常启动。
有谁知道如何做到这一点?
小智 4
不久前我们使用 user32.dll 的SetWindowPos. 虽然它不会在所需的窗口上打开程序,但需要几毫秒的时间才能打开程序,因此对于您的要求来说并不是什么问题!
您可以查看以下要点:
https://gist.github.com/reinhardholl/013a7c3fa319beeaf534#file-display-cs
特别注意班级Display:
private void ShowAppOnDisplay(App app)
{
SetWindowPos(app.Process.MainWindowHandle, 0, _screen.WorkingArea.Left, _screen.WorkingArea.Top, _screen.WorkingArea.Width, _screen.WorkingArea.Height, SWP_SHOWWINDOW);
}
Run Code Online (Sandbox Code Playgroud)
如果您需要更多帮助,请告诉我!
| 归档时间: |
|
| 查看次数: |
5186 次 |
| 最近记录: |