如何检测第二个屏幕

时间:2018-06-14 10:56:41

标签: c# console-application

我是C#开发人员。 我有两个屏幕(显示器),我使用这行代码:

Process.Start(@"C:\Program Files\Windows Media Player\wmplayer.exe" , @"C:\advertise.mp4");

启动我的Windows Media Player。我的问题是如何选择我的进程在第二个屏幕(监视器)上启动?

3 个答案:

答案 0 :(得分:3)

正如Banana在评论中提到的,检测第二个屏幕的一种简单有效的方法是将项目中的引用添加到System.Windows.Forms程序集,然后使用静态AllScreens属性。 Screen类,返回Screen个实例的数组。以下是获取计数的代码示例,但您还可以找到其他信息,例如检测它们当前正在考虑系统中的主监视器。

// using System.Windows.Forms int screenCount = Screen.AllScreens.Length;

答案 1 :(得分:0)

与Banana评论一致:使用Screen class,您将可以使用AllScreens属性。

从那里,您可以通过index

取出您想要使用的所需屏幕
var screens = Screen.AllScreens;
var screen = screens[1];

如果您使用DeviceName使用超过2个屏幕,那么可以选择:

var screen = screens.Single(x => x.DeviceName == "name of the monitor");

凯尔伯恩斯在回答中说:

  

您还可以找到其他信息,例如检测他们当前正在考虑系统中的主监视器

修改

Here is a solution on how to start a process on a different screen

答案 2 :(得分:-1)

var screens = Screen.AllScreens; 

var count = screens.length;

您也可以通过屏幕迭代

screens.ForEach(screen => {
    //do something with screen object
});