ich möchte auf einem Netzwerkdrucker eine Datei drucken. Zu überprüfen, ob der Netzwerkdrucker an ist, erfordert ein für meine Kenntnisse zu großen Aufwand. Ich teste jetzt, ob der Netzwerk PC an ist, was mir eigentlich auch reicht. Aus dem Internet habe ich mir das folgende Makro zusammengebastelt, welches auch geht. Trotzdem habe ich dazu einige Fragen:
Wie kann ich die For Each Schleife ändern, es wird ja nur ein PC gesucht?
Die Abfrage If objPing.StatusCode = 0 Then kann ich nicht ändern in 0, laut meiner Überwachung ist objPing.StatusCode immer Null. Wieso überhaupt Else ausgeführt wird ist mir unklar. Wie muß die korrekte If Abfrage lauten?
Vielen Dank und Gruß
Wolfgang
Private Sub CommandButton12_Click()
Dim Nesuch As Integer
Dim alterDrucker As String
'prüfen, ob PCDell an ist,
Dim objWMIService As Object
Dim colPings As Object, objPing As Object
On Error Resume Next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colPings = objWMIService.ExecQuery _
("Select * From Win32_PingStatus where Address = '" & "PCDell" & "'")
If Err = 0 Then
Err.Clear
'Ist dies nötig, da nur nach einem PC gesucht wird?
For Each objPing In colPings
If Err = 0 Then
Err.Clear
'Wie sieht die richtige If Abfrage aus?
If objPing.StatusCode = 0 Then
Else
MsgBox "PCDell nicht bereit !"
Exit Sub
End If
End If
Next
Err.Clear
End If