Я знаю класс Screen, но при попытке использовать Screen.AllScreens [0] я получаю что-то вроде. \Device1. Вместо этого я хотел бы получить свое имя на экране, что-то вроде HP 24. Как это можно сделать? Благодаря
Я думаю, что вы хотите класс Win32_DesktopMonitor из пространства имен System.Management. Я не уверен в том, какое свойство вы хотите, но попробуйте что-то подобное, чтобы узнать, что вы получаете:
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());
}
}
Вы можете фильтровать по определенному идентификатору устройства, если хотите, с простым предложением WHERE DeviceID = 'колбасы' в SQL. Хотя, возможно, с меньшей колбасой.
Вы пробовали свойство DeviceName? Я думаю, что я бы сделал Screen.getPrimaryScreen(). DeviceName
http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.devicename.aspx
Думаю, вам может понадобиться использовать WMI для этого. Вот ссылка qaru.site/questions/1701909/.... В основном вы идете за чем-то вроде Win32_DesktopMonitor.
У вас может быть "TrueFlat Display" HP 24 "или что-то еще, но, что касается окон, он почти наверняка упоминается только как" Монитор Plug and Play "и что он.