Rubrik: System/Windows · Desktop/Bildschirm/Display | VB-Versionen: VB2005, VB2008, VB2010 | 24.11.11 |
Alle Monitornamen in einem MultiScreen-System ermitteln Die Namen aller Monitore im System werden mittels WMI ermittelt und in einer Liste gespeichert. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 9.356 |
ohne Homepage | System: WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wenn man die Namen aller Monitore, also gewissermaßen die Herstellerbezeichnung, im Programm braucht, können alle im System installierten und verwendeten Monitornamen mit der folgenden Funktion mittels WMI ermittelt und in einer Liste bereit gestellt werden.
Fügen Sie Ihrem Projekt zunächst den Verweis System.Management hinzu.
Imports System.Management ...
''' <summary> ''' Ermitteln der Monitorbezeichnungen in einem Multiscreen-System ''' </summary> ''' <returns>Stringliste mit den Namen der Monitore</returns> Public Function DetectMonitorNames() As List(Of String) ' Ausgabeliste mit den Bezeichnungen Dim displayList As New List(Of String) ' Device-Info Dim info As ManagementObject ' Suchobjekt Dim WMIsearcher As ManagementObjectSearcher ' Name bzw. ID eines Display Dim displayName, displayID As String ' Objekteauswahl WMIsearcher = New ManagementObjectSearcher("SELECT * From Win32_PnPEntity") For Each info In WMIsearcher.Get() displayID = info("PNPDeviceID") ' DeviceID splitten, erstes Element ist 'Geräteart' Dim id() As String = Split(displayID, "\") If id(0) = "DISPLAY" Then ' wenn Geräteart DISPLAY, dann Name in Liste speichern displayName = info("Caption") displayList.Add(displayName) End If Next Return displayList End Function
Der Aufruf ist denkbar einfach:
Dim MonitorNames As List(Of String) = DetectMonitorNames