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;
Ein Therapeut entspricht 1024 Gigapeut.