Hallo zusammen,
ich versuche nach dem Senden eines ESC-Kommandos an den Drucker Treiber eine Information anschließend über den Zustand des Auftrags zu erhalten.
Bsp.: Ich schicke eine ESC-Kommando zum Lesen des Magnetstreifens. anschließend will ich wissen was er ausgelesen hat. Dazu verwende ich die Funktion ReadPrinter.
Hier scheiterts aber, denn die Funktion kommt mit nem False zurück. Folgenden Code verende ich:
Delphi-Quellcode:
procedure TForm1.btnSendCMDClick(Sender: TObject);
var cmd : String;
PrntName : String;
s : String;
hPrinter : DWord;
DocInfo : TDocInfo1;
dwBytesWritten : DWord;
sDocumentTitle : string;
begin
if Trim(edtCMD.Text) <> '' then
begin
cmd := chr(27) + Trim(edtCMD.Text) + #13 + #10;
sDocumentTitle := 'Printer command';
PrntName := myPrinter; // globale Variable. Druckername wird über dropdown box ausgewählt und gesetzt
PrntRes := false;
try
OpenPrinter(Pchar(PrntName), hPrinter, nil);
DocInfo.pOutputFile:= nil;
DocInfo.pDatatype:= 'RAW';
DocInfo.pDocName:= PChar(sDocumentTitle);
StartDocPrinter(hPrinter, 1, @DocInfo);
StartPagePrinter(hPrinter);
PrntRes := WritePrinter(hPrinter, Pointer(Cmd), Length(Cmd), dwBytesWritten);
EndPagePrinter(hPrinter);
EndDocPrinter(hPrinter);
if PrntRes then
PrntRes := ReadPrinter(hPrinter, PChar(cmd), Length(cmd), dwBytesWritten);
ClosePrinter(hPrinter);
except
end;
end;
end;
So funktioniert das aber alles nicht.
Danke & Gruß, Moony