Registriert seit: 15. Okt 2003
Ort: Bad Münstereifel
2 Beiträge
|
Ändern des Printerstatus
15. Okt 2003, 00:48
Wer kann mir helfen. Ich versuche eine Windows-Queue anzuhalten bzw. zu starten und verwende folgenden Code. Ich denke das sollte so funktionieren, erhalte aber "Zugriff verweigert" obwohl ich alle Rechte besitze.
Delphi-Quellcode:
function SetPrinterStatus(PrinterHandle:THandle;Status:integer):Boolean;
type
TPrinterInfo=Printer_Info_2;
PPrinterInfo=^TPrinterInfo;
var
BytesNeeded:Cardinal;
PInfo:PPrinterInfo;
begin
Result:=false;
GetPrinter(PrinterHandle,2,nil,0,@BytesNeeded); //Speicherbedarf lesen
PInfo:=AllocMem(BytesNeeded);
//Daten holen
if (GetPrinter(PrinterHandle,2,PInfo,BytesNeeded,@BytesNeeded)) then begin
//Status schreiben
Result:= Winspool.SetPrinter(PrinterHandle,0,PInfo,Status);
If not Result then
ShowMessage(SysErrorMessage(GetLastError));
end;
FreeMem(PInfo);
end;
Procedure PausePrinter(QueueName:String);
var PrinterHandle:THandle;
begin
If OpenPrinter(PChar(QueueName),PrinterHandle,nil) then begin
SetPrinterStatus(PrinterHandle,PRINTER_CONTROL_PAUSE);
ClosePrinter(PrinterHandle);
end;
end;
Matthias
|
|
Zitat
|