(Erledigt)Key und Mouse Erkennung.
- tft
- Beiträge: 605
- Registriert: 08.09.2004 20:18
- Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
- Wohnort: Dachsen
- Kontaktdaten:
(Erledigt)Key und Mouse Erkennung.
Hallo,
Mein ChiChan Projekt wächst und gedeit. Aber je mehr ich Code, desdo mehr dinge wollen nicht wie ich wohl will.
Um alle Actionen abzubrechen muss ich auf Mouse und Tastatur änderungen reagieren. Egal welches Fenster gerade
aktiv den Fokus hat, das betrifft vor allem Fenster die nicht von PB geöffnet wurden.
Frühere Windows Versionen haben immer alle Nachrichten auf den Stack gelegt. So musste man immer
Prüfen welche Nachricht für wehn gedacht ist. Jetzt bekomme ich über das Event System nur nachrichten die entweder Mit PostMassage
gesendet wurden oder wirklich im Fenster entstanden sind. Was ansich ja auch sinnvoll ist. Aber ich muss das Laufenden Programm immernoch
Steuern können, auch wenn es den Fokus verliert.
Jemand eine Idee ??? Ich nämlich nicht. Ausser ein Externes Hardware Signal Alt F4
Gruss TFT
Mein ChiChan Projekt wächst und gedeit. Aber je mehr ich Code, desdo mehr dinge wollen nicht wie ich wohl will.
Um alle Actionen abzubrechen muss ich auf Mouse und Tastatur änderungen reagieren. Egal welches Fenster gerade
aktiv den Fokus hat, das betrifft vor allem Fenster die nicht von PB geöffnet wurden.
Frühere Windows Versionen haben immer alle Nachrichten auf den Stack gelegt. So musste man immer
Prüfen welche Nachricht für wehn gedacht ist. Jetzt bekomme ich über das Event System nur nachrichten die entweder Mit PostMassage
gesendet wurden oder wirklich im Fenster entstanden sind. Was ansich ja auch sinnvoll ist. Aber ich muss das Laufenden Programm immernoch
Steuern können, auch wenn es den Fokus verliert.
Jemand eine Idee ??? Ich nämlich nicht. Ausser ein Externes Hardware Signal Alt F4
Gruss TFT
Zuletzt geändert von tft am 30.12.2017 16:54, insgesamt 1-mal geändert.
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Re: Key und Mouse Erkennung.
Möchtest du systemweit die Maus- und Tastatureingaben abfragen?
Wenn ja:
Tastatur: http://www.rsbasic.de/aktualisierung/wi ... ardHook.pb
Maus: http://www.rsbasic.de/aktualisierung/wi ... se-Hook.pb
Die Zeile "ProcedureReturn 1" kannst du aus den Beispielcodes entfernen.
Wenn ja:
Tastatur: http://www.rsbasic.de/aktualisierung/wi ... ardHook.pb
Maus: http://www.rsbasic.de/aktualisierung/wi ... se-Hook.pb
Die Zeile "ProcedureReturn 1" kannst du aus den Beispielcodes entfernen.
- tft
- Beiträge: 605
- Registriert: 08.09.2004 20:18
- Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
- Wohnort: Dachsen
- Kontaktdaten:
Re: Key und Mouse Erkennung.
Hallo,
Verstehe ich das richtig, wenn ich sage. Der Hook setzt sich zwischen Tastaturtreiber und Anwendung?
Dann muss ich nur den Hook auswerten um zu wissen welche Tasten gedrückt wurden?
Das Mause Beispielt gefriert den Rechner ganz fürchterlich ein
Gruss TFT
Verstehe ich das richtig, wenn ich sage. Der Hook setzt sich zwischen Tastaturtreiber und Anwendung?
Dann muss ich nur den Hook auswerten um zu wissen welche Tasten gedrückt wurden?
Das Mause Beispielt gefriert den Rechner ganz fürchterlich ein
Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Re: Key und Mouse Erkennung.
Dann hast du da irgendwas verkehrt gemacht. Mit Code kann man eher helfen....tft hat geschrieben:Das Mause Beispielt gefriert den Rechner ganz fürchterlich ein
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: Key und Mouse Erkennung.
@tft
Ja
Ansonsten hatte ich das Problem noch nie.
Vielleicht liegt es am Antivirenprogramm, welches die kompilierte Anwendung genauer prüft, weil ein Keyboard-/Mouse-Hook kann auch als Keylogger verwendet werden. Deshalb kann es möglicherweise sein, dass einige Antivirenprogramme sehr empfindlich darauf reagieren.
Ja
Das tut mir leid. Die Zeile "ProcedureReturn 1" bzw. den kompletten Case-Bereich hast du aber entfernt oder?tft hat geschrieben:Das Mause Beispielt gefriert den Rechner ganz fürchterlich ein
Ansonsten hatte ich das Problem noch nie.
Vielleicht liegt es am Antivirenprogramm, welches die kompilierte Anwendung genauer prüft, weil ein Keyboard-/Mouse-Hook kann auch als Keylogger verwendet werden. Deshalb kann es möglicherweise sein, dass einige Antivirenprogramme sehr empfindlich darauf reagieren.
- tft
- Beiträge: 605
- Registriert: 08.09.2004 20:18
- Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
- Wohnort: Dachsen
- Kontaktdaten:
Re: Key und Mouse Erkennung.
Hallo,
also so funktionert das nicht wie ich es Brauche. Die Idee scheint der Richtige weg zu sein .... nur die Steine sind noch etwas hoch.
Sagen wir mal ich habe das Beispiel gestartet. Dann sollte doch wenn der Editor von PB den Fokus hat. Das Programm beändet werden
wenn ich dort die ECS Taste drücke? oder ?
Gruss TFT
also so funktionert das nicht wie ich es Brauche. Die Idee scheint der Richtige weg zu sein .... nur die Steine sind noch etwas hoch.
Sagen wir mal ich habe das Beispiel gestartet. Dann sollte doch wenn der Editor von PB den Fokus hat. Das Programm beändet werden
wenn ich dort die ECS Taste drücke? oder ?
Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Re: Key und Mouse Erkennung.
Geht es um das Mouse-Beispiel? Da sollst du die Escape-Taste drücken, wenn das Beispielfenster den Fokus hat. Da sollst du nicht woanders klicken, sondern nur beispielhaft auf den Button innerhalb des Beispielfensters.
Wenn du auf den PB-Editor klickst, dann kann das Beispielfenster nicht mehr auf Esc prüfen, weil das Beispielfenster im Hintergrund ist.
Die Zusatzabfrage der Escape-Taste hat aber nichts mit dem Beispielcode zu tun. Ist nur dazu da, damit man das Fenster mit der Escape-Taste schließen kann (natürlich solange das Fenster den Fokus hat), weil man ja nicht mit der linken Maustaste auf den X-Button in der Titelleiste klicken kann.
Anderes/Besseres/Einfaches Beispiel:
Wenn du auf den PB-Editor klickst, dann kann das Beispielfenster nicht mehr auf Esc prüfen, weil das Beispielfenster im Hintergrund ist.
Die Zusatzabfrage der Escape-Taste hat aber nichts mit dem Beispielcode zu tun. Ist nur dazu da, damit man das Fenster mit der Escape-Taste schließen kann (natürlich solange das Fenster den Fokus hat), weil man ja nicht mit der linken Maustaste auf den X-Button in der Titelleiste klicken kann.
Anderes/Besseres/Einfaches Beispiel:
Code: Alles auswählen
EnableExplicit
Define hhkLLMouse
Procedure MouseKeyHook(nCode, wParam, lParam)
Select wParam
Case #WM_LBUTTONDOWN
Debug "Linke Maustaste wird gedrückt."
Case #WM_LBUTTONUP
Debug "Linke Maustaste wurde losgelassen."
EndSelect
ProcedureReturn CallNextHookEx_(0, nCode, wParam, lParam)
EndProcedure
If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
hhkLLMouse = SetWindowsHookEx_(#WH_MOUSE_LL, @MouseKeyHook(), GetModuleHandle_(0), 0)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
UnhookWindowsHookEx_(hhkLLMouse)
Re: Key und Mouse Erkennung.
Hallo tft!
Denke ich hierbei richtig:
->Du suchst eine Lösung, wenn dein Programm (irgendein Fenster davon) den Focus verliert ?
->Also quasi ein Prozess (Unter-Thread oder eigenständiges Programm (Abfrage-Server)) der bei Focusverlust alle/bestimmte Tastaurereignisse abfängt und an dein Programm weiterleitet ?
Oder bin ich auf dem Holzweg?
Denke ich hierbei richtig:
->Du suchst eine Lösung, wenn dein Programm (irgendein Fenster davon) den Focus verliert ?
->Also quasi ein Prozess (Unter-Thread oder eigenständiges Programm (Abfrage-Server)) der bei Focusverlust alle/bestimmte Tastaurereignisse abfängt und an dein Programm weiterleitet ?
Oder bin ich auf dem Holzweg?
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat
no Keyboard, press any key
no mouse, you need a cat
- tft
- Beiträge: 605
- Registriert: 08.09.2004 20:18
- Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
- Wohnort: Dachsen
- Kontaktdaten:
Re: Key und Mouse Erkennung.
Hallo,
nein der Holzweg ist schon ganz richtig. Ich möchte von meinem Programm aus wissen. Egal ob es den Fokus hat oder nicht. Welche Tasten gedrückt werden und was die Mouse gerade macht, wobei mir die Tatsache reicht. die genauen Tastenangaben brauche ich nicht. Ich brauche das als Abbruchbedingung für Akionen die mein Laufendes Programm im Hintergrund erledigen soll.
Als Beispiel.
Am Rechner wird gerade nichts gemacht ......... das Hintergrundprogramm startet einen Rechen Intensiven Thread/Prozess, ohne jegliche Fenster.
Jetzt benutzt der Anwender Word um einen Brief zu schreiben. Mein Hintergrund Programm muss jetzt auf Grund der Tasten oder Mouse Eingabe seine
Arbeit unterbrechen und warten bis eine gewisse Zeit wider nichts Passiert, und dann an seiner Arbeit weitermachen.
Auf Verlieren des Fokus kann ich nicht abfragen da es kein Fenster gibt. Und es funktioniert sowiso nicht immer da das Hintergrund Programm den Fokus auch nicht gehabt haben muss um zu starten selbst wenn ich ein Dummy Fenster erstelle. Denn der Fokus musss ja beim Aktiven Fenster bleiben.
Es ist keine gewöhnliche Aufgabe ...... ich will auch nicht das mir jemand einen Code schreibt. Bei der Stufe muss ich das Verstehen können um damit weiter zu arbeiten.
Gruss TFT
nein der Holzweg ist schon ganz richtig. Ich möchte von meinem Programm aus wissen. Egal ob es den Fokus hat oder nicht. Welche Tasten gedrückt werden und was die Mouse gerade macht, wobei mir die Tatsache reicht. die genauen Tastenangaben brauche ich nicht. Ich brauche das als Abbruchbedingung für Akionen die mein Laufendes Programm im Hintergrund erledigen soll.
Als Beispiel.
Am Rechner wird gerade nichts gemacht ......... das Hintergrundprogramm startet einen Rechen Intensiven Thread/Prozess, ohne jegliche Fenster.
Jetzt benutzt der Anwender Word um einen Brief zu schreiben. Mein Hintergrund Programm muss jetzt auf Grund der Tasten oder Mouse Eingabe seine
Arbeit unterbrechen und warten bis eine gewisse Zeit wider nichts Passiert, und dann an seiner Arbeit weitermachen.
Auf Verlieren des Fokus kann ich nicht abfragen da es kein Fenster gibt. Und es funktioniert sowiso nicht immer da das Hintergrund Programm den Fokus auch nicht gehabt haben muss um zu starten selbst wenn ich ein Dummy Fenster erstelle. Denn der Fokus musss ja beim Aktiven Fenster bleiben.
Es ist keine gewöhnliche Aufgabe ...... ich will auch nicht das mir jemand einen Code schreibt. Bei der Stufe muss ich das Verstehen können um damit weiter zu arbeiten.
Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
- tft
- Beiträge: 605
- Registriert: 08.09.2004 20:18
- Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
- Wohnort: Dachsen
- Kontaktdaten:
Re: Key und Mouse Erkennung.
Da fällt mir ein ... früher konnte man einfach ein OpenWindowedScreen im Hintergrund öffnen und damit arbeiten.
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak