Obtenir des informations sur le moniteur du PC en utilisant .NET / WMI

Utilisez-vous de toute façon WMI / .Net pour récupérer des informations sur le moniteur telles que le fabricant, le numéro de série, la taille du moniteur, etc.

L’utilisation d’un script est également une option. Puis-je interroger directement le registre pour obtenir ces informations?

SELECT * FROM Win32_DesktopMonitor ne me renvoie pas vraiment d’informations utiles dans ce cas.

vous voudrez peut-être essayer ceci

http://myitforum.com/cs2/blogs/rzander/archive/2009/03/30/wmi-provider-to-list-the-monitors-serialnr-and-model-name.aspx

J’utilise aussi WMI Explorer pour vérifier les parameters WMI.

http://www.ks-soft.net/hostmon.eng/wmi/index.htm

À votre santé

Bonjour, j’utilise cet outil pour bon nombre de mes travaux sur WMI, notamment lors du prototypage et de la création de POC ….

Générateur de code Microsoft WMI

Cet outil est idéal pour créer un code d’application de console rapide pour toute requête wmi ou appel de méthode en C # et VB.NET.

 try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DesktopMonitor"); foreach (ManagementObject queryObj in searcher.Get()) { Console.WriteLine("-----------------------------------"); Console.WriteLine("Win32_DesktopMonitor instance"); Console.WriteLine("-----------------------------------"); Console.WriteLine("Description: {0}", queryObj["Description"]); } } catch (ManagementException e) { MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); } 

Le code ci-dessus vous indiquera la marque et le modèle du moniteur.

Cette requête de sélection devrait vous donner ce que vous voulez. Voici la documentation qui contient les détails de la requête.

Ensuite, vous pourriez faire quelque chose comme ça:

  public void GetMonitorDetails() { using(ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DesktopMonitor") { foreach(ManagementObject currentObj in searcher.Get()) { Ssortingng name = currentObj("Name").ToSsortingng(); Ssortingng device_id = currentObj("DeviceID").ToSsortingng(); // ... } } } 

Ce message , associé à la réponse ci-dessous à propos de l’outil de gestion WMI, a eu ma réponse. Voici le code qui renvoie les résolutions de votre moniteur.

 try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM WmiMonitorBasicDisplayParams"); foreach (ManagementObject queryObj in searcher.Get()) { Debug.WriteLine("-----------------------------------"); Debug.WriteLine("WmiMonitorBasicDisplayParams instance"); Debug.WriteLine("-----------------------------------"); Debug.WriteLine("Description: {0}", queryObj["SupportedDisplayFeatures"]); } } catch (ManagementException e) { MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); } 

Dans mon cas, je suis toujours bloqué, car il renvoie la résolution “réduite” de chaque moniteur. L’un des miens est un écran 4K, enregistré comme 2560×1440.