5

我需要通过其标识号在屏幕中显示对话框,例如我有这种情况 windows上的屏幕设置

我想在第四个显示一些东西,当我使用 Screen.AllScreens 获取所有屏幕时,我的第四个屏幕是数组中的 0 元素,因为 AllScreens 不是按缩进数而是按顺序返回屏幕。所以也许有人知道如何从 Screen 类中获取标识号,或者如何通过其标识号获取屏幕坐标和边界。

更新:

DeviceName 并不总是与标识号相对应(见下图):

在此处输入图像描述

4

2 回答 2

1

如果你看screen.DeviceName你应该得到\\\\.\\DISPLAY1\\\\.\\DISPLAY2等等。你可以用它来搜索\\\\.\\DISPLAY4

于 2012-09-14T15:55:58.287 回答
0

获取屏幕编号(肮脏的方式,但它有效):

 var sceenId = -1;
 var targetScreen = Screen.FromPoint(Cursor.Position);
 for (var i = 0; i < Screen.AllScreens.Length; i++)
 {
     if (!Equals(targetScreen, Screen.AllScreens[i]))
         continue;
     sceenId = i;
     break;
 }

通过标识号获取屏幕坐标和边界:

Screen.AllScreens[sceenId].Bounds

于 2016-05-19T07:07:50.703 回答