Hallo,
(Die FOSU hat weder hier noch im Internationalen wirklich was gebracht, oder ich habe die falschen Worte gescuht...)
Ich habe ein Autoit Script das als Konsolen App kompiliert wird.
Es funktioniert soweit alles super, nur ein entscheidendes Problem hat sich mir eröffnet.
Die Autoit App soll über Tastendrücke gesteuert werden. Sprich z.B. Die F1-F12 Keys beenden die Exe mit unterschiedlichen Errorlevels oder die ESC Taste beendet die App mit EL 255.
Die EXE wird von .BAT files aufgerufen deswegen die gesetzten ELs. Das können auch mehrere Instanzen gleichzeitig sein.
Im augenblick starte ich z.B: zweimal eine cmd und dort drinen jeweils einmal die Exe. Drücke ich nun F1 beenden sich beide, obwohl nur ein Fenster (oder gar keines) aktiv waren.
In der Autoit Exe frage ich die Tasten mit
[autoit]if _ispressed("70",$dll) then exit(11)
[/autoit]
als Beispiel ab.
Funktioniert auch alles super toll, NUR leider reagiert die App auch wenn das Consolen Fenster (die cmd.exe) nicht den Fokus hat. Verhält sich also so wie HOTKEY. Das ist ja auch "systemweit" als Hook eingetragen, richtig?
Hätte ich ein Fenster(gui) könnte ich das über die Fenster Handles abfragen (aktiv oder eben nicht)
Leider kann ich auch nicht mit "titel" vorher die cmd umbenennen und dann nach diesem Titel suchen lassen.
Wie schaffe ich es, in einer Fensterlosen App, die Tastendrücke so zu filtern das nur die jeweils aktive Instanz den Input erhält?
Ich hoffe jemand kann mir helfen. Alle bisherigen Versuche fragten immer das Fenster der EXE ab.
Als notnagel habe ich schon folgendes vor:
Zuerst finde ich per Batch die Fenster ID der CMD, die übergebe ich dann der Autoit EXE als Parameter und die sucht ob das entsprechende Fenster aktiv ist....aber das wäre nur der Notnagel.....
Falls es das oder so ein ähnliches Problem schon als gelöst gibt, Link genügt.
Vielen Dank.