Hallo Leute,
ich bekomme so viel Hilfe von Euch, da ist es nur fair wenn ich auch einmal etwas produktives beisteuere.
Ich stand vor der Aufgabe eine Druckausgabe auf einen Reservedrucker umzuleiten, sobald der Hauptdrucker offline ist, das Papier aus ist oder nicht angesteckt oder ausgeschaltet. Ich habe sehr viele Lösungsansätze im Netz gefunden um den Druckerstatus herauszufinden, nur einer funktionierte wirklich zuverlässig und diesen habe ich für meine Bedürfnisse adaptiert:
Liebe Grüße
Roland
ich bekomme so viel Hilfe von Euch, da ist es nur fair wenn ich auch einmal etwas produktives beisteuere.
Ich stand vor der Aufgabe eine Druckausgabe auf einen Reservedrucker umzuleiten, sobald der Hauptdrucker offline ist, das Papier aus ist oder nicht angesteckt oder ausgeschaltet. Ich habe sehr viele Lösungsansätze im Netz gefunden um den Druckerstatus herauszufinden, nur einer funktionierte wirklich zuverlässig und diesen habe ich für meine Bedürfnisse adaptiert:
VB.NET-Quellcode
- ''' <summary>
- ''' Übergibt False, wenn der Drucker aus welchem Grund auch immer nicht druckbereit ist
- ''' In dieser Funktion wird "ErrorLog" verwendet - diese Funktion schreibt ein Error-Logfile im Falle von offline, paper out oder disconnect
- ''' </summary>
- ''' <param name="Drucker"></param>
- ''' <returns></returns>
- ''' <remarks></remarks>
- Public Function isPrinterOnline(Drucker As String) As Boolean
- Dim Online As Boolean = False
- Dim scope As ManagementScope = New ManagementScope("\root\cimv2")
- scope.Connect()
- Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_Printer")
- Dim collection As ManagementObjectCollection = searcher.Get
- For Each printer As ManagementObject In collection
- If printer("Name").ToString() = Drucker Then
- If printer("WorkOffline").ToString().ToLower().Equals("true") Then
- ErrorLog(Drucker + " offline (user)") 'Error-Logfile Eintrag
- Online = False
- Else
- Online = True
- End If
- If printer("PrinterStatus") <> 3 Then Online = False
- If printer("ExtendedDetectedErrorState") <> 0 Then Online = False
- If printer("PrinterState") <> 0 Then Online = False
- If printer("PrinterState") = 144 Then ErrorLog(Drucker + " no Paper") 'Error-Logfile Eintrag
- If printer("PrinterState") = 4096 Then ErrorLog(Drucker + " not on") 'Error-Logfile Eintrag
- End If
- Next
- Return Online
- End Function
Liebe Grüße
Roland
Liebe Grüße
Roland Berghöfer
Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
Roland Berghöfer
Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at