Thema: Delphi Drucker entfernen

Einzelnen Beitrag anzeigen

TUX_der_Pinguin

Registriert seit: 1. Jun 2005
Ort: Anholt (NRW)
608 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Drucker entfernen

  Alt 17. Aug 2017, 12:50
Die Frage wäre ja, was beim zweiten Mal fehl schlägt ... OpenPrinter oder DeletePrinter.
Vermutlich OpenPrinter, weil der Printer ja gelöscht ist.


Aber ein Boolean sagt ja nun überhaupt nichts darüber aus, was nicht ging und vorallem warum es nicht gin.
Delphi-Quellcode:
procedure PE_DeletePrinterNow(PrinterName: string);
var
  hPrinter : Cardinal;
  PrinterDef: PRINTER_DEFAULTS;
begin
  FillChar(PrinterDef, SizeOf(PrinterDef), #0);
  PrinterDef.DesiredAccess := PRINTER_ALL_ACCESS;
  if not OpenPrinter(PChar(PrinterName), hPrinter, @PrinterDef) then
    RaiseLastOSError;
  try
    if not DeletePrinter(hPrinter) then
      RaiseLastOSError;
  finally
    ClosePrinter(hPrinter);
  end;
end;
Es schlägt DeletePrinter() fehl und nicht OpenPrinter() mit der Fehlermeldung ..
Zitat:
Systemfehler. Code: 1801.
Der Druckername ist unzulässig.
Eigentlich müsste ja OpenPrinter fehlschlagen tut es aber nicht und zu allem überfluss ist der Drucker immer noch vorhanden.
  Mit Zitat antworten Zitat