Spezielle Maustasten - Klicks abfragen
-
Ja genau diese tasten meine ich.
Man kann z.B. bei Firefox mit den beiden Tasten auf der rechten Seite meiner Maus (die nicht von WM_XBUTTONDOWN abgedeckt werden) auf eine Seite hoch und runter scrollen.
Wie machen die Firefox Entwickler das?
Die können doch auch nicht für jeden Treiber was programmieren.MFG
Ace
-
Machen die auch nicht.
Schau mal unter Systemsteuerung -> Maus
Ich hab da einen Reiter "Tasten" in dem ich meinen Sondertasten eine Funktion zuordnen kann. Bei dir liegt auf diesen Tasten eben runter- und hochscrollen.
Das macht aber wie gesagt der Treiber der Maus.
-
Ok vielen Dank.
Ihr habt mir sehr geholfen.
MFG
AceEdit:
Noch eine letzte Frage:
Wie kann ich auf diese Window Messages reagieren, wenn das Fenster keinen Focus hat, bzw. im Tray liegt?
Gibts da auch sowas wie registerhotkey?
-
Windows Maus oder Tastatur Events bekommt ein minimiertes Fenster nicht.
Was möchtest Du machen und warum benötigst Du dies?
-
Ich möchte auf ein Event wie Strg - Taste + Scrollrad reagieren und etwas "machen".
Geht das überhaupt mit minimiertem Fenster oder muss ich einen Dienst proggen?
MFG
Ace
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39184.html
Ist allerdings eine Anleitung für den C++Builder. Aber du schaffst das auch so.

-
WebFritzi schrieb:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39184.html
Ist allerdings eine Anleitung für den C++Builder. Aber du schaffst das auch so.

Steckt da vielleicht noch ein kleiner Fehler in DllEntryPoint?
HANDLE hMapFile = NULL; // Ein File-Mapping-Handle switch(reason) { .... // Die DLL wird aus dem Adressraum eines Prozesses freigegeben case DLL_PROCESS_DETACH: { // Den Speicher aus dem Adressraum des Prozesses "rausmappen" UnmapViewOfFile(lpvMem); // Das Handle des Prozesses auf das File-Mapping-Objekt schließen CloseHandle(hMapFile); }Ist hMapFile in DLL_PROCESS_DETACH denn aufgrund der lokalen Initialisierung nicht in jedem Fall NULL? Das "richtige" Handle dürfte damit nicht geschlossen werden.
-
Ok danke.
Mit Hooks kenn ich mich gut aus. Mir war nur nicht klar das ich einen brauche.
Nochmals vielen vielen Dank. Ist immer eine Freude ein kompetentes Forum zu haben.
MFG
Ace
-
Jetzt hab ich doch noch ne Frage:
Ich möchte das Event WM_MOUSEWHEEL behandeln. Wenn ich das in einem normalen Fenster tue, kann ich mit
GET_KEYSTATE_WPARAM(Msg.WParam);
die Tasten auslesen, die während der Mauswheelrotation gerdrückt waren.
Kann ich das auch bei einem Mousehook?
wParam hat dort die Funktion die Mousemessage (wie z.B. WM_MOUSEWHEEL) zu spezifizieren.
lParam weist auf eine MOUSEHOOKSTRUCT Structure. Dort finde ich keine Tasten oder so...Gibt es trotzdem eine Möglichkeit?
MFG
AceEdit: Hier noch die wichtigen Links:
http://msdn2.microsoft.com/en-us/library/ms646251(vs.85).aspx
(GET_KEYSTATE_WPARAM)http://msdn2.microsoft.com/en-us/library/ms644968(VS.85).aspx
(MOUSEHOOKSTRUCT)http://msdn2.microsoft.com/en-us/library/ms645617.aspx
(WM_MOUSEWHEEL)
-
Nochmal genauer meine Frage:
Wenn ich die WM_MOUSEWHEEL Message ganz normal mit der WnDProc eines Fenster abfragen, kann ich durch:
GET_KEYSTATE_WPARAM(Msg.WParam);
die Tasten abfragen, die während dem Event gedrückt waren.Wenn ich nun die Message mit einem hook abfange, finde ich keine Möglichkeit diese Tasten abzufragen.
Kennt jemand doch irgendeine Möglichkeit?
Eigentlich müsste ich doch mit dem Hook genau die selbe Message kriegen, wie das Fenster. Wo sind die Daten abgeblieben?MFG
Ace
-
Ich verstehe nicht was Du willst! Du bekommst doch den wParam in Deiner MouseProc genauso. Warum nutzt Du ihn nicht auch genauso?
http://msdn2.microsoft.com/en-us/library/ms644988(VS.85).aspx
-
Der wParam in meiner MouseProc ist nicht gleich dem den ich in WndProc bekomme!
Im wParam von MouseProc steht nur der Typ der Nachricht und keine weitern Informationen. Bei der WndProc gibt es Msg.Msg, dort steht der Typ der Nachricht und es gibt wParam dort stehen zusäzliche Informationen.
Die zusätzlichen Infos bei MouseProc liegen in lParam.lParam
[in] Pointer to a MOUSEHOOKSTRUCT structure.In dieser MOUSEHOOKSTRUCT gibt es aber keine Informationen bezüglich der Tasten die gedrückt waren.
Das ist mein Problem. Es kann doch nicht sein, dass ich, nur weil ich einen Hook benutze, weniger Infos kriege als wenn ich WndProc nutze.MFG
AceSoll ich noch Code posten?