Hi Juergen, warum willst du das denn machen? Na seis drum. Mit ein wenig Googeln hättest du den Code längst gefunden. Ich hab auf Anhieb z.B. diese Seite entdeckt: https://www.softperfect.com/board/read.php?12,25279
Wenn du nun für strComputer einen Punkt "." zuweist, (kann man auf anderen Seiten vergleichen!) und als Output eine Excel Zelle angibst sowie einen entsprechenden Zähler hochzählst, kannst du deine Monitore listen.
Private Sub MonitorID()
Dim a As Integer, strcomputer As String, I As Long, SerialNo As String, ProductId As String
Dim objWMIService As Object, colMonitors As Object, objMonitor As Object
strcomputer = "."
'Get monitors with WMI
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strcomputer & "\root\WMI")
Set colMonitors = objWMIService. _
ExecQuery("SELECT * FROM WmiMonitorID")
For Each objMonitor In colMonitors
a = a + 1
'Convert serial number to ASCII
SerialNo = ""
For I = 0 To UBound(objMonitor.SerialNumberID)
SerialNo = SerialNo & Chr(objMonitor.SerialNumberID(I))
Next
'Convert model name to ASCII
ProductId = ""
For I = 0 To UBound(objMonitor.UserFriendlyName)
ProductId = ProductId & Chr(objMonitor.UserFriendlyName(I))
Next
Cells(a, 1) = ProductId
Cells(a, 2) = SerialNo
Next
End Sub
Sollte es Probleme mit den Objekt-Variablen geben (falscher Typ oder so), deklariere sie als Variant, oder lass die Deklarationen, wie auf der Quellseite einfach ganz weg. Bei mir funktioniert der oben gezeigte Code einwandfrei.
PS: Es gibt auch noch andere tolle Infos, die du mit WMI auslesen kannst. z.B. Chipsatz, Motherboard usw. Schau dich dazu einfach mal in den Weiten des Netzes um.
Gruß Mr. K.
|