2009-08-20 34 views
2

我知道Screen類的,而是試圖用Screen.AllScreens [0],我得到這樣的事情的時候。\ Device1的。相反,我想要我的屏幕名稱,像HP 24的東西。如何做到這一點?由於讓我的屏幕的名字在C#

+0

的[我如何獲得實際的監視器名稱可能重複?正如決議對話框中看到(http://stackoverflow.com/questions/4958683/how-do-i-get-the-actual-monitor-name-as-seen-in-the-resolution-dialog) – 2015-01-31 23:44:39

回答

5

我想你在想Win32_DesktopMonitor類System.Management命名空間。我不確定off-一方面其屬性,你想要的,但嘗試這樣的事情,看看你會得到什麼:

SelectQuery q = new SelectQuery("SELECT Name, DeviceID, Description FROM Win32_DesktopMonitor"); 
using(ManagementObjectSearcher mos = new ManagementObjectSearcher(q)) 
{ 
    foreach(ManagementObject mo in mos.Get()) 
    { 
     Console.WriteLine("{0}, {1}, {2}", 
      mo.Properties["Name"].Value.ToString(), 
      mo.Properties["DeviceID"].Value.ToString(), 
      mo.Properties["Description"].Value.ToString()); 
    } 
} 

您可以通過特定的DeviceID過濾器,如果你這麼一個簡單的「WHERE的DeviceID =‘香腸’」子句中的SQL希望。雖然可能少用香腸。

0

你嘗試過的設備名稱屬性?我想我會做Screen.getPrimaryScreen()。設備名稱

http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.devicename.aspx

+0

這是Screen.PrimaryScreen.DeviceName(至少在3.5)。但它也會返回「。\ Device1」。 – Ezombort 2009-08-20 13:09:31

+0

這是我使用的是什麼,它沒有返回所期望的結果:( – 2009-08-20 13:10:42

+0

正常 - 我不是來自這個問題清楚,只是想澄清它看起來像其他一些人可能有一些想法,你 – user158017 2009-08-20 13:15:30

-1

你可能有一個「HP 24" TrueFlat顯示」或什麼,但就窗口而言它幾乎肯定只是列爲「插件即插即用監視器」,僅此而已。

+0

Windows本身!在所有其他地方識別屏幕的真名,它必須知道屏幕名稱本身。 – 2009-08-20 13:10:04

相關問題