![]() |
AW: Epson TM-T70 USB Kassenschublade öffnen
Das ganze Programm kann ich hier nicht veröffentlichen.
Delphi-Quellcode:
Einfach die Kommentare beachten und ein bischen umschreibenfunction RawDataToPrinter(szPrinterName:PChar; lpData:PByte; dwCount:Word) : Boolean; Var hPrinter : THandle; DocInfo : DOC_INFO_1; dwJob : Word; dwBytesWritten : Cardinal; Begin Result:=False; if NOT OpenPrinter( szPrinterName, hPrinter, NIL ) then Exit; DocInfo.pDocName := 'RAWJOB'; DocInfo.pOutputFile := NIL; DocInfo.pDatatype := 'RAW'; dwJob := StartDocPrinter( hPrinter, 1, @DocInfo ); if (dwJob = 0 ) Then begin ClosePrinter( hPrinter ); Exit; end; if not StartPagePrinter( hPrinter ) then begin EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); Exit; end; if not WritePrinter( hPrinter, lpData, dwCount, dwBytesWritten ) then begin EndPagePrinter( hPrinter ); EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); Exit; end; if not EndPagePrinter( hPrinter ) then begin EndDocPrinter( hPrinter ); ClosePrinter( hPrinter ); Exit; end; if not EndDocPrinter( hPrinter ) then begin ClosePrinter( hPrinter ); Exit; end; ClosePrinter( hPrinter ); Result:=dwBytesWritten = dwCount; End; function SwitchPrinter(const APrtName : string):string; var Device, Driver, Port: array[0..255] of Char; DevMode: THandle; begin with Printer do begin PrinterIndex := Printers.IndexOf(APrtName); GetPrinter(Device, Driver, Port, DevMode); SetPrinter(Device, Driver, Port, 0); result:=Printers[printerindex]; end; end; procedure Tfrmmain.opendrawer(nr:integer); // Muss keine Methode sein, einfache Procedure geht auch Var FH:THandle; Buff: array[0..5] of char; RetW:DWORD; port:string; cmd:string; acmd:ansistring; p:pansichar; begin // Anderer Code acmd:=#27#112#48#250#250; if dm.steuertext='Epson2' then // 2. Schubladenanschluss dm.steuertext kann man durch Konstante ersetzen acmd:=#27#112#49#250#250; p:=AnsiStrAlloc(length(acmd)); p:=StrPCopy(p,acmd); switchprinter(dm.Steuertextdrucker); //Druckername, so wie er in Windows angezeigt wird rawdatatoprinter(pwidechar(dm.Steuertextdrucker),pbyte(p),length(acmd)); end; |
AW: Epson TM-T70 USB Kassenschublade öffnen
Delphi-Quellcode:
Habe den Code angepasst leider reagiert der Drucker überhaupt nicht.
procedure TForm4.opendrawer(); // Muss keine Methode sein, einfache Procedure geht auch
//procedure TForm4.opendrawer(nr:integer); // Muss keine Methode sein, einfache Procedure geht auch Var FH:THandle; Buff: array[0..5] of char; RetW:DWORD; port:string; cmd:string; acmd:ansistring; p:pansichar; begin // Anderer Code acmd:=#27#112#48#100#100; // if dm.steuertext='Epson2' then // 2. Schubladenanschluss dm.steuertext kann man durch Konstante ersetzen // acmd:=#27#112#49#250#250; p:=AnsiStrAlloc(length(acmd)); p:=StrPCopy(p,acmd); switchprinter('EPSON TM-70'); //Druckername, so wie er in Windows angezeigt wird rawdatatoprinter(pwidechar('EPSON TM-70'),pbyte(p),length(acmd)); end; in der funktion RawDataToPrinter sprigt er in exit. if NOT OpenPrinter( szPrinterName, hPrinter, NIL ) then Exit; Muss ich vorher noch etwas beachten. |
AW: Epson TM-T70 USB Kassenschublade öffnen
Ist der Drucker in Windows installiert?
Druck er Testseite oder aus Wordpad? |
AW: Epson TM-T70 USB Kassenschublade öffnen
Ja, er ist installiert und druckt auch über wordpad.
|
AW: Epson TM-T70 USB Kassenschublade öffnen
Dann sollte es eigentlich gehen. Kann der Druckername falsch sein? Um da zu prüfen, kann man die Funktion Switchprinter benutzen. Ist der Druckername falsch, liefert diese den Namen des Standarddruckers zurück.
|
AW: Epson TM-T70 USB Kassenschublade öffnen
Bei der function RawDataToPrinter springt er ins exit.
Delphi-Quellcode:
Bei der SwitchPrinter Funktion wird der Epson angezeit.
if NOT OpenPrinter( szPrinterName, hPrinter, NIL ) then
Exit; Habe ich was vergessen ? Muss ich den Printer noch extra "open" Wenn ja wie ? |
AW: Epson TM-T70 USB Kassenschublade öffnen
Funktioniert doch !!!
Habe beim Druckernamen einen Buchstaben vergessen. Wer lesen kann ist klar im Vorteil :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz