Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mousehook und welche Maus war es (https://www.delphipraxis.net/142262-mousehook-und-welche-maus-war-es.html)

hanspeter 24. Okt 2009 21:37


Mousehook und welche Maus war es
 
Hallo,
ich habe an einem Rechner logisch zwei Mäuse hängen und will den Tastendruck einer Maus innerhalb des Programmes oder besser systemweit abfangen.
Also ein Mousehook systemweit.
Wenn jemand eine fertige Lösung (natürlich gegen Bezahlung) anbieten könnte, wäre mir das aus zeitlichen Gründen am liebsten.
Das Drücken derTaste soll umgehend einen Event erzeugen.

Der programmtechnische Hintergrund.
Ich habe einen USB Taster gekauft. Dieser wird als Maus im System angemeldet und simuliert einen Tastendruck (mbleft).
Von Haus aus ist ein Driver mitgeliefert. Dieser installiert einen Mousehook und schlüsselt das Drücken der Taste in ein frei programmierbaren Key um. (z.B. Ctrl-Alt-Shift A)
Das Teil bietet zuviel Service. Es kist möglich das Zeichen kurzer , langer und doppelter Tastendruck zu definieren. Das bedeutet, das der Taster erst auf das Loslassen der Taste reagiert. Hier ist auch noch eine Verzögerung implementiert um einen doppelten Tastendruck zu erkennen.
Diese Wartezeit ist zu lang. In der Praxis führt das dazu, das der Taster mehrfach gedrückt wird.
Nebenbei bemerkt, die Wirkung dieses Tastendruckes ist mächtig gewaltig. Mit etwa 1200 W verstärkt erklingt eine Glocke des Kölner Domes.
Programm oder systemweit ist in diesem Fall egal, da der Rechner ein Einzweckrechner ist, auf dem immer das gleiche Programm läuft.
Der Taster dient zur platzweiten Kommunikation wärend einer Sportveranstaltung. (Startfreigabe und Gefahrenabbruch.)

Für einen Lösungsvorschlag danjbar.

Gruß Peter

SirThornberry 25. Okt 2009 00:13

Re: Mousehook und welche Maus war es
 
Bist du dir sicher das der Treiber einen Hook installiert? Ich würde eher Tippen das der Treiber direkt dafür sorgt das der Tastendruck simuliert wird. Denn im Maus-/Tastaturhook ist mir nicht bekannt das mitgeliefert wird von welchem Gerät (oder ob überhaupt von einem Gerät) der Tastendruck kommt.

himitsu 25. Okt 2009 01:04

Re: Mousehook und welche Maus war es
 
Wenn der mitgelieferte Treiber auch eine beliebige Tastenkombination senden kann, dann wähle eine,
welche es sonst auf dem System nicht gibt.

Für das eigene Programm könntest du dann über einen Tastatur-Hook an diese Taste(n) kommen
oder du wählst die Taste(n) so, daß einfach einen globaler Hotkey damit angesprochen wird.

hanspeter 25. Okt 2009 07:49

Re: Mousehook und welche Maus war es
 
Zitat:

Zitat von himitsu
Wenn der mitgelieferte Treiber auch eine beliebige Tastenkombination senden kann, dann wähle eine,
welche es sonst auf dem System nicht gibt.

So habe ich es jetzt gelöst.
In einem Installer kann die Taste programmiert werden, die simuliert werden soll.
Was ich weg haben möchte, sind die etwa 1 sec Verzögerung nach dem Loslassen der Taste.

Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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