![]() |
Kassenschublade Status(offen/geschlossen) abfragen
Hallo liebe Gemeinde,
wir hatten ja hier schon mehrfach das Thema wie man denn eine Kassenschublade, die an einen POS Printer angeschlossen ist öffnen kann. Es gibt mehrere Hinweise, wie das OHNE OPOS Treiber geht. Aber kann mir irgendwer verraten, wie man ohne OPOS den Status(offen/geschlossen) der Kassenschublade abfragen kann? Die meisten Schubladen haben einen Schalter eingebaut, die den Status auf 2 Pins am Stecker repräsentieren, aber wie kann man den per SW nun auslesen? Wenn das NUR über OPOS geht(nativ wäre mir lieber): hat jemand ein gutes Delphi Tutorial(link), wie man mit OPOS arbeitet? Danke euch schonmal wieder im voraus für eure hilfreichen Infos! |
AW: Kassenschublade Status(offen/geschlossen) abfragen
1. Da wird dir der Kassenschubladenhersteller am besten eine Antwort geben können, da dies höchstwahrscheinlich über eine DLL vom ihm läuft, die mit dem Treiber/über USB/über TCP/IP mit der Schublade kommuniziert und die Hardware abfragt.
2. Wo genau hängt es denn bei OPOS? Das Importieren der ActiveX-Komponente klappt schon? Nutzt du das? ![]() |
AW: Kassenschublade Status(offen/geschlossen) abfragen
Die Schublade ist über eine POS Drucker(z.B. Epson TM... oder ähnliches angeschlossen..
Zitat:
Ach so nebenbei: wie lese ich eigentlich den Status des Druckers aus?(Paperout, offline,...) Zitat:
|
AW: Kassenschublade Status(offen/geschlossen) abfragen
Delphi-Quellcode:
Getting the printers status
Uses WinSpool; function GetCurrentPrinterStatus: DWORD; var hPrinter: THandle; Device : array[0..255] of char; Driver : array[0..255] of char; Port : array[0..255] of char; hDeviceMode: THandle; bytesNeeded: Cardinal; pPI: PPrinterInfo2; Defaults: TPrinterDefaults; begin Assert( Printer.PrinterIndex >= 0 ); Printer.GetPrinter(Device, Driver, Port, hDeviceMode); FillChar( Defaults, Sizeof(Defaults), 0 ); Defaults.DesiredAccess:= {PRINTER_ACCESS_ADMINISTER or} PRINTER_ACCESS_USE; Win32Check(WinSpool.OpenPrinter(@Device, hPrinter, @Defaults )); try WinSpool.GetPrinter( hPrinter, 2, Nil, 0, @bytesNeeded ); GetMem( pPI, bytesNeeded ); try Win32Check(WinSpool.GetPrinter( hPrinter, 2, pPI, bytesNeeded, @bytesNeeded )); Result := pPI^.Status; finally FreeMem( pPI ); end; finally WinSpool.ClosePrinter( hPrinter ); end; end; Check the API docs for PRINTER_INFO_2, it tells you what flags may appear in the status returned by this function. You test for the presence of a specfic flag via an expression like if (Status and PRINTER_STATUS_ERROR) <> 0 then |
AW: Kassenschublade Status(offen/geschlossen) abfragen
Vielen Dank für die Info zum Printerstatus.....enthält der zufällig auch die Infos zum Schubladenstatus?
|
AW: Kassenschublade Status(offen/geschlossen) abfragen
|
AW: Kassenschublade Status(offen/geschlossen) abfragen
Wow! Das ist ja mal richtig cool. DANKE!!!:thumb:
ABER: leider hat nur 1 von ~50 Installationen einen Epson...Der Rest ist Posbank, Bixolon oder PBP... hat irgendwer vielleicht zufällig eine generische Methode?(ausser OPOS natürlich:-D) BTW: hat irgenwer einen Link für ein GUTES Delphi OPOS Tutorial für mich? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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