相关疑难解决方法(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万
查看次数

如何使用WinAPI/C#获取监视器/显示设备名称

我正在使用C#/ WPF中的应用程序,并希望获得所有连接的显示器监视器的列表.我使用了Screen类并成功获得了列表,但现在列表中的每个监视器名称都是".\ Display1\XXXXXXXX"等.这是不可读的.但是,My Nividia控制面板将它们列为专有名称.所以任何人都可以告诉我如何获得这些名称或api参考.

注意:=我已经尝试过返回名称的EnumDisplayDevices,但它们应该是什么?这让事情更加混乱?

我尝试了WMI,它允许我访问更多信息,但是,名称仍然是"默认监视器1""默认监视器2",而没有关于制造商的信息,现在我想我们可以通过使用正常蜜蜂

c# winapi

3
推荐指数
1
解决办法
4625
查看次数

标签 统计

c# ×2

multiple-monitors ×1

winapi ×1

windows ×1