Einzelnen Beitrag anzeigen

Matthias_H

Registriert seit: 15. Okt 2003
Ort: Bad Münstereifel
2 Beiträge
 
#1

Ändern des Printerstatus

  Alt 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
  Mit Zitat antworten Zitat