我是C#开发人员。 我有两个屏幕(显示器),我使用这行代码:
Process.Start(@"C:\Program Files\Windows Media Player\wmplayer.exe" , @"C:\advertise.mp4");
启动我的Windows Media Player。我的问题是如何选择我的进程在第二个屏幕(监视器)上启动?
答案 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
});