Tastatur abfragen

Antworten
LIGHT_MASTER
Beiträge: 11
Registriert: Sonntag 21. Oktober 2012, 18:19
Wohnort: Mittelfranken

Tastatur abfragen

Beitrag von LIGHT_MASTER » Mittwoch 13. März 2013, 21:02

Hallo Forum


Ist es möglich eine PS/2 Tastatur Direkt abzufragen während PL bzw. die Frontplatte im Hintergrund läuft und wenn ja wie?!

Hintergrund ist, dass ich einen Magnetkartenleser Abfragen möchte der "parallel" zur Tastatur am PS/2 Port hängt um so bestimmte Funktionen frei zu schalten oder zu sperren.

Vielleicht hat jemand ein Beispiel oder eine Hilfestellung für mich?!




Vielen Dank im Voraus

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: Tastatur Abfragen

Beitrag von tom_g » Mittwoch 13. März 2013, 23:05

Hi,

Sachen gibts...

versuchs mal mit
<diverses> <Hotkeys>

Gruss Thomas
Curiousity makes us progress !

LIGHT_MASTER
Beiträge: 11
Registriert: Sonntag 21. Oktober 2012, 18:19
Wohnort: Mittelfranken

Re: Tastatur Abfragen

Beitrag von LIGHT_MASTER » Donnerstag 14. März 2013, 09:13

Hallo...


Ich kann leider nicht ganz folgen...

Was haben denn die Hotkey´s mit dem abfragen der Tastatur bzw. "auslesen" des Magnetkartenlesers zu tun?



LG Flo

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: Tastatur Abfragen

Beitrag von tom_g » Donnerstag 14. März 2013, 12:38

Hoi Flo,

ich hatte aus Deiner Frage am Thread-Anfang verstanden, dass Du Tasten ("keystrokes") der Standard-Tastatur abfragen willst; diese steckt an einem PS-2 Port. Parallel dran steckt ein Kartenleser ?? Da konnte ich nichrt richtig folgen.

Tastendruck der Standardtastatur in PL abfragen, das geht eben mit den Hotkeys, welche Du da definieren kannst; für jede Taste musst Du eine eigene Hotkey (send) einbeziehen.

Wenn ich das Problem nicht oder falsch verstanden habe, dann entschuldige ich mich und muntere Dich auf, die Problemstellung besser zu formulieren.

Gruss Thomas
Curiousity makes us progress !

LIGHT_MASTER
Beiträge: 11
Registriert: Sonntag 21. Oktober 2012, 18:19
Wohnort: Mittelfranken

Re: Tastatur Abfragen

Beitrag von LIGHT_MASTER » Donnerstag 14. März 2013, 13:08

Hallo Thomas...


Da haben wir wohl etwas aneinander vorbei geredet :-) aber ok... dann schildere ich mal genau was ich vor habe.

Ich habe hier 2 Kassenterminals von NCR stehen die einen Magnetkartenleser integriert haben.

Hier mal das Manual von den Systemen, damit du weist worum es geht.

http://support.epostraders.co.uk/suppor ... rGuide.pdf

Der Magnetkartenleser hängt scheinbar pararllel zur normalen Tastatur am PS/2 port denn wenn ich z.b. den Editor von Windows öffne, und dann die Karte durch den Leser ziehe dann steht der "Wert" der auf der kare gespeichert ist gefolgt von einem "Return Befehl" im Editor.


So... und jetzt zum Eigentlichen Problem:

Ich habe vor das WindowsXP welches ich auf dem System installiert habe, mit der karte zu Sperren bzw. zu entsperren.

Das sperren von Windows ist ja dank dem Befehl "RUNDLL32.exe user32.dll, LockWorkStation" kein Problem. Diesen habe ich als Batch Datei auf meinem Desktop liegen und kann ihn mit "Programm Starten" von Profilab aus durch einen Taster ausführen.
Auch das Entsperren ist kein Problem, da ja im gesperrten zustand von Windows das Passwortfenster angezeigt wird und da der Kartenleser eh als "Tastatur" arbeitet, muss ich nur die Karte durchziehen und Windows ist entsperrt (vorausgesetzt man definiert den wert der auf der karte gespeichert ist als Windows Passwort ).

Alles schön und gut aber wie kann ich die Batchdatei mit dem Sperrbefehl ausführen bzw. von Profilab aus starten wenn die Frontplatte im Hintergrund läuft und ich dann die Karte durch den Leser ziehe?!

Desshalb eben auch meine Frage wie man die Tastatur im hintergrund abfragen kann.




LG Flo

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: Tastatur Abfragen

Beitrag von tom_g » Donnerstag 14. März 2013, 17:01

Hoi Flo,

danke für die Ausführungen.

Es handelt sich also um eine Zeichenfolge mit <ENTER> am Schluss, welche Du einlesen willst. Sie könnte sowohl von der Tastatur, als auch von einem Kartenleser stammen, welcher eine Tastaturemulation macht.

1. Problem: PL kann nur Ereignisse empfangen, wenn die Anwendung (PL) im Fokus ist. Wenn eine andere Anwendung läuft, und PL im Hintergrund sein Programm abarbeitet, kann eine Hotkey, oder die ASCII-Eingabe nichts empfangen (letztere braucht den Fokus auf das Control, um Zeichen aufzunehmen, man muss also ins Display hineinklicken, um Zeichen einzugeben, sonst passiert nichts)

Also bleibt m. M. n. nur die Möglichkeit, eine eigene Datenschnittstelle zu schaffen, welche von PL gepollt wird:

2.0 über eine DLL, welche von PL aufgerufen wird, können Daten zwischen Prozessen (PL und Fremdprozess) ausgetauscht werden.
2.1 über File-Exchange: ReadLn aus PL oder DLLs zur Bearbeitung von Files von Kollegen auf dem Forum

d.h.
*Die DLL liest direkt den Keyboard-Buffer vom System
*oder eine anderer Prozess (pipe ? oder eine fertige Applikation ?), von einem Batchfile periodisch gestartet durch PL, schreibt den Inhalt des Keyboard-Buffers in ein File, woraus der Inhalt in PL eingelesen und als string verglichen wird, wenn zutreffend, dann erfolgt durch PL die Action, d.h. der Start Deines vorgesehenen Windows Delock- oder Lock-Batchfiles.

Dies sind nur Gedanken, ich weiss nicht, ob sie Dir was bringen.

Grüsse von Thomas
Curiousity makes us progress !

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: Tastatur Abfragen

Beitrag von tom_g » Donnerstag 14. März 2013, 18:01

Hi Flo,

evt. könnte auch AutoIt <http://www.autoitscript.com/site/autoit/> für die Aufgabe von Nutzen sein:
kann das Keyboard abfragen und die Info gezielt zu PL "beamen"

Gruss Thomas
Curiousity makes us progress !

LIGHT_MASTER
Beiträge: 11
Registriert: Sonntag 21. Oktober 2012, 18:19
Wohnort: Mittelfranken

Re: Tastatur Abfragen

Beitrag von LIGHT_MASTER » Donnerstag 14. März 2013, 19:18

Hallo Thomas...


Die Befürchtung mit dem "Fokus" hatte ich auch schon, ich hatte allerdings gehofft, dass man dießes Problem umgehen könnte wenn man das Bauteil "Port-READ" verwendet um so die Tastatur Daten aus zu lesen.


Das Programm "Autoit" scheint ganz interessant zu sein allerdings habe ich keine ahnung wie man das bedient geschweige denn wie man scripte dafür schreibt und da mein Englisch weis Gott nicht das beste ist, werd ich damit warscheinlich auch nicht weiter kommen... :-(


Wenn du dich damit auskennst, vielleicht kannst du mir ja helfen?



LG Flo

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: Tastatur Abfragen

Beitrag von tom_g » Freitag 15. März 2013, 13:14

Hi Flo,

ich habe versucht, den Keyboardbuffer mit einer PL-DLL auszulesen; leider zunächst ohne durchschlagenden Erfolg.

Bei Verwendung meiner Programmierumgebung (Euphoria) rufen die Funktionen get_key() und gets() leider eine command shell (standard output) auf, und die Funktion wait_key() blockiert PL, bis Enter gedrückt wird, dann bringe ich den eingetippten String in PL rein; das nützt so aber wenig...

Ich müsste nun tief in die Windows-Event-Umgebung eintauchen, um event messages der Tastatur abzufangen
In Windows Programmierung bin ich nur begrenzt sattelfest.

Aufruf an WoB als DLL-Spezi ;-)
hast Du in diesem Themenumfeld evt. den einfachen Durchgriff ?


Mal sehen (ohne es zu versprechen), was ich mit AutoIt hinkriege (ist halt nur halb so schön, wenn eine weitere Applikation mitmischt)

Gruss Thomas
Curiousity makes us progress !

LIGHT_MASTER
Beiträge: 11
Registriert: Sonntag 21. Oktober 2012, 18:19
Wohnort: Mittelfranken

Re: Tastatur Abfragen

Beitrag von LIGHT_MASTER » Freitag 15. März 2013, 16:07

Hi Thomas...


Hab dir mal ne PN Geschickt...



LG Flo

Antworten

Zurück zu „(Fern-)Bedienung / Externe Eingabegeräte“