WritePrinter & ReadPrinter
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:
So funktioniert das aber alles nicht.
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; Danke & Gruß, Moony |
Re: WritePrinter & ReadPrinter
Guten Morgen,
kann mir denn hierbei keiner weiterhelfen??? :cry: Gruß, Moony |
AW: WritePrinter & ReadPrinter
Hallo Moony,
ich bin beim Googlen auf deinen Post gestossen und möchte dich mal fragen, ob du das Problem aus 2009 inzwischen gelöst hast. Wenn ja, könntest du mir die Lösung sagen?. Wir haben derzeit dasselbe Problem. Es scheint eine Änderung von Delphi 7 auf Delphi 2010 zu sein. Viele Grüsse und danke für deine Antwort Burghard |
AW: WritePrinter & ReadPrinter
Guten Morgen,
mag das damit zusammenhängen das in Delphi7 ein String ein AnsiString (1Byte ein Zeichen) ist und in Delphi2010 ein String (zwei Byte ein Zeichen) ein UniCode-String ist. Du könntest ja mal versuchen die Strings in der Routine in Ansistrings zu ändern. Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz