PrinterStatus() bringt XBPPRN_STATUS_NA
Verfasst: Fr, 17. Mai 2013 11:56
So, ich mach mal ein extra Thema in dieser Sektion draus, hier ist es besser aufgehoben:
Bei
knallt es, das heisst ja, dass das Druckerobjekt zwar erzeugt werden konnte, der Drucker jedoch nicht READY ist. In dem heutigen Fall bekomme ich von printerStatus zurück:
Also doch aus
ein
oder eine weitere Abfrage im Falle von XBPPRN_STATUS_NA?
Bei dem Kunden war aber nichts mit den Druckern, sie funktionieren aus anderen Windows-Anwendungen. Erst als alle Drucker auf dem Client (Win7 Prof, 64bit) gelöscht und nochmal neu verbunden wurden, war der Fehler weg. Die Drucker wurden zu dem Fehlerzeitpunkt (war jederzeit reproduzierbar auch nach PC-Neustart) jedoch nicht gerade durch das Betriebssystem gelöscht...
Code: Alles auswählen
oDrucker := XbpPrinter():new()
aDrucker := oDrucker:list()
nLaenge := len(aDrucker)
if nLaenge == 0
fehler("Es sind keine Drucker installiert!")
return NIL
endif
aSchaechte := array(nLaenge)
for i := 1 to nLaenge
if .not. valtype(oDrucker:create(aDrucker[i])) == "O"
fehler("Auf den Drucker " + aDrucker[i] + " kann nicht zugegriffen werden!")
elseif .not. val(str(oDrucker:printerStatus())) == XBPPRN_STATUS_READY
fehler("Drucker " + aDrucker[i] + " nicht verfügbar: " + chr(13) + cPrinterStatus(oDrucker:printerStatus()))
aSchaechte[i] := oDrucker:paperBins()
endif
oDrucker:destroy()
next i
Code: Alles auswählen
aSchaechte[i] := oDrucker:paperBins()
also ein XBPPRN_STATUS_NA.Der Drucker ist nicht verfügbar weil das XbpPrinter Objekt den Drucker nicht innerhalb :create() erreichen konnte, oder
das Druckerobjekt des Betriebssystems gerade gelöscht wird
Also doch aus
Code: Alles auswählen
if .not. valtype(oDrucker:create(aDrucker[i])) == "O"
Code: Alles auswählen
if .not. oDrucker:create(aDrucker[i]) == oDrucker
Bei dem Kunden war aber nichts mit den Druckern, sie funktionieren aus anderen Windows-Anwendungen. Erst als alle Drucker auf dem Client (Win7 Prof, 64bit) gelöscht und nochmal neu verbunden wurden, war der Fehler weg. Die Drucker wurden zu dem Fehlerzeitpunkt (war jederzeit reproduzierbar auch nach PC-Neustart) jedoch nicht gerade durch das Betriebssystem gelöscht...