ALLE Mousebuttons abfangen...
-
Hi, ich hab nen MouseHook und fange mit dem MouseWheel Actions ab, also wenn am Rädchen gedreht wird.
Ich möchte aber gerne, dass ich informiert werde, wenn egal welcher Mouseknopf gedrückt wird. z.B. auch wenn MouseWheel gedrückt wurde (also bei meiner Maus kann man das Rad reindrücken).
Ich werd aus der MS Doku irgendwie nicht schlau, kann mir jemand helfen?hier mal mein Hook:
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam){ JNIEnv * env; MSLLHOOKSTRUCT * m = (MSLLHOOKSTRUCT*)lParam; if(nCode < 0) return CallNextHookEx(NULL, nCode, wParam, lParam); if (jvm->AttachCurrentThread((void **)&env, NULL) >= 0) { if(nCode == HC_ACTION){ switch (wParam){ case WM_MOUSEWHEEL: env->CallVoidMethod(hookObj, processKeyID, (int)m->mouseData, false); break; case WM_MBUTTONDOWN: env->CallVoidMethod(hookObj, processKeyID, (int)m->mouseData, false); break; default: break; } } } return CallNextHookEx(NULL, nCode, wParam, lParam); }einfach das Java gedöhns überlesen...
z.B. "case WM_MBUTTONDOWN:" fängt bei mir ne komische Seitenmaustaste ab. Also am besten wäre so etwas wie, er gibt mir direkt zurück, welche Maustaste gedrückt wurde und ich muss nicht jede Maustaste abfangen. Da ja jeder ne andere Maus hat wäre das eh nicht sinnvoll, manche haben ja 5 oder mehr Tasten, manche nur 2
Gibts vielleicht ne Funktion, so in der Art "GetMouseButton(wparam,lprarm)"?
-
vielleicht ein kleiner hinweis? bin mit C bzw. winapi Programmierung eher unerfahren, komme aus Java

-
Weis halt niemand? :-> Warte bis morgen. Ich habe keine Ahnung von was du sprichst!
-
Jeder Mausbutton hat eine eigne Nachrichtengruppe WM_LBUTTON..., WM_RBUTTON..., WM_MBUTTON...
Schon mal versucht die MSDN zu lesen?
Spätestens über die Suche nach WM_MBUTTONDOWN wärst Du auf die anderen Nachricten gekommen.
-
ja hab ich gelesen, wurd aber (wie gesagt) nicht schlau draus weil viele Mäuse eben mehr als nur L/R/M Buttons haben und ich wollte wissen, ob es was gibt, wie ich ALLE Buttons herausfinden kann...
-
Was kommt denn sonst noch dazu? WM_MOUSEWEEL, und das war's.
-
Alles andere was an Buttons existiert ist rein von den entsprechenden Treibern implementiert. Dafür gibt es keine offiziellen Nachrichten.
D.h. auch die entsprechenden Aktionen sind herstellerspezifisch.