在特定屏幕上启动进程

本文关键字:启动 进程 屏幕 | 更新日期: 2023-09-27 18:06:51

我正在写一个在特定屏幕上打开程序的小工具,这样我就可以设置我们的监控屏幕(一台机器有2个屏幕)在一夜之间重新启动,并让它在启动时将监控网页恢复到正确的屏幕。我想通过使用。net的System.Diagnostics.Process类来完成这个任务。

我已经看到有可能打开一个进程,然后使用p/调用将其移动到某个地方(打开记事本到屏幕上的特定位置,并达到所需的大小?),但是,我想在应用程序打开之前设置目标屏幕,以便例如Chrome在Kiosk模式下通过此设置正常启动。

有人知道怎么做吗?

在特定屏幕上启动进程

不久之前,我们使用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);
    }

如果你需要更多的帮助,请告诉我!