相关疑难解决方法(0)

如何获取实际的Monitor名称?如解决方案对话框中所示

我正在尝试为我的系统上的监视器获取友好名称.我正在使用C#.

我试过了Screen,只是给了我//./DisplayXX.我也曾尝试既Win32_DesktopMonitorEnumDisplayDevices,他们都给予我的变化//./DisplayXXOR Generic Monitor,而我知道我的显示器名称SyncMasterSM2333T.

现在,Windows知道这些监视器是什么,使用正确的名称在" 设备和打印机"窗口中显示它们,并在用于设置位置和分辨率的对话框中显示它们.

我在哪里可以从中获取这些名称?我已经查看了注册表,似乎无法找到它们,所以任何帮助都会很棒.

解决方案: 我遇到的问题是EnumDisplayDevices第二次调用时iDevNum再次调用id,这意味着我试图从错误的位置获取数据,然后将其替换为0,它完美地运行,请参阅下面的代码.

    var device = new DISPLAY_DEVICE();
    device.cb = Marshal.SizeOf(device);
    try
    {
        for (uint id = 0; EnumDisplayDevices(null, id, ref device, 0); id++)
        { 
                Console.WriteLine(String.Format("{0}, {1}, {2}, {3}, {4}, {5}", id, device.DeviceName, device.DeviceString, device.StateFlags, device.DeviceID, device.DeviceKey));
                Console.WriteLine();
                device.cb = Marshal.SizeOf(device);

                EnumDisplayDevices(device.DeviceName, 0, ref device, 0);

                Console.WriteLine(String.Format("{0}, {1}, {2}, {3}, {4}, {5}", id, device.DeviceName, …
Run Code Online (Sandbox Code Playgroud)

c# windows multiple-monitors

15
推荐指数
3
解决办法
2万
查看次数

在c#中获取我的屏幕名称

我知道Screen类,但是当我尝试使用Screen.AllScreens [0]时,我会得到像.\ Device1这样的东西.相反,我想拥有我的屏幕名称,比如HP 24'.怎么办?谢谢

.net c# vb.net

2
推荐指数
1
解决办法
3141
查看次数

标签 统计

c# ×2

.net ×1

multiple-monitors ×1

vb.net ×1

windows ×1