Keyhook mit gedrückter Taste..



  • Hi 🙂

    ich benutze folgenden keyhook:

    LONG WINAPI GameWindowEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        if (uMsg == WM_MBUTTONDOWN)
        DoStuff();
    	return (LONG)CallWindowProcA(OldWNDPROC, hWnd, uMsg, wParam, lParam);
    }
    

    funktioniert soweit auch prima, nur will ich dass DoStuff solang called wird bis ich MBUTTON wieder loslasse und folglich MBUTTONUP sende.
    funktioniert leider nicht, meine einzige idee wäre ein thread mit einem bMBUTTONDOWN? - boolean, will ich aber möglichst vermeiden

    hat jemand eine idee?

    vielen dank 😉



  • Nein.



  • Jochen Kalmbach schrieb:

    Nein.

    vielen dank für den aufschlussreichen beitrag


  • Mod

    Das ist ein subclass für eine WindpwProc und kein Hook!
    Wie soll man bei solch verworrener Aufgabenstellung eine Idee haben?

    Man kann nicht etwas "so lange ausführen bis" etwas passiert. Zumindest nicht mmit einer Fenter Prozedur.
    Du bekommst eine Nachricht über einen WM_MBUTTONDOWN. Dann kannst Du etwas ausführen, aber Du musst dem System ja die Chance geben wieder eine nächste Nachrichtz zu verarbeiten, d.h. Du musst die Prozedur verlassen.

    Ansätze wären ein Timer, ein separater Thread,... je nachdem was Du willst.

    Erkläre was Du wirklich willst.



  • Martin Richter schrieb:

    Das ist ein subclass für eine WindpwProc und kein Hook!
    Wie soll man bei solch verworrener Aufgabenstellung eine Idee haben?

    Man kann nicht etwas "so lange ausführen bis" etwas passiert. Zumindest nicht mmit einer Fenter Prozedur.
    Du bekommst eine Nachricht über einen WM_MBUTTONDOWN. Dann kannst Du etwas ausführen, aber Du musst dem System ja die Chance geben wieder eine nächste Nachrichtz zu verarbeiten, d.h. Du musst die Prozedur verlassen.

    Ansätze wären ein Timer, ein separater Thread,... je nachdem was Du willst.

    Erkläre was Du wirklich willst.

    habe es nun auch derartig gelöst. ich finde diese thread methode trotzdem ziehmlich hässlich.. permanent GetTickCount callen usw.

    trotzdem danke 😉


Anmelden zum Antworten