Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WritePrinter & ReadPrinter (https://www.delphipraxis.net/136251-writeprinter-readprinter.html)

Moony 26. Jun 2009 10:32


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:
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

Moony 29. Jun 2009 06:18

Re: WritePrinter & ReadPrinter
 
Guten Morgen,

kann mir denn hierbei keiner weiterhelfen??? :cry:

Gruß, Moony

Burghard 12. Mai 2012 09:39

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

Klaus01 12. Mai 2012 09:50

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