SendInput dwExtraInfo



  • Hallo liebe Community,
    ich habe eine Frage zu SendInput bzw. mouse_event..
    Man kann ja extra Informationen mitsenden. Also bei meinem code dann:

    void LeftClick()
    {
    	INPUT Input;
    	Input.type = INPUT_MOUSE;
    	Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;      
    	SendInput(true, &Input, sizeof(Input));
    	ZeroMemory(&Input, sizeof(INPUT));
    	Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
    	Input.mi.dwExtraInfo = 1000; // IN DIESER ZEILE    
    	SendInput(true, &Input, sizeof(Input));
    }
    

    Diese Extra Information möchte ich später in meinem LowLevelMouseHook auslesen können.
    Ich möchte so zwischen meinen eigenen simulierten Mausklicks und "echten" Mausklicks unterscheiden können.
    Wenn ich jetzt diese dwExtraInfo auf 1000 festlege, bekomme ich bei meinem Hook einen ganz anderen Wert heraus, welcher von Klick zu klick anders ist.
    Wie kann ich das realisieren?

    MfG



  • ...



  • Den Empfänger interessiert diese extra Information eigentlich nicht. Jedoch sollte man damit:

    LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam) {
    	PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT)(lParam);
    p->dwExtraInfo //die Extra Info abfangen/auslesen
    }
    

    können oder täusche ich mich da?
    Wenn man diese per cout ausgibt kommt bei eingegebener dwExtraInfo=1000 irgendein
    "zufälliger" anderer Wert raus.

    MfG



  • ...



  • Der SendInput geht an eine andere Applikation.. Deshalb muss ich es ja mit dem Hook auslesen.
    GetMessageExtraInfo() würde mir ja nur 0 ausschmeißen im eigenen Programm.
    dwExtraInfo verlangt einen ULONG_PTR.
    Aber wie erstelle ich diesen Pointer?

    ULONG extraInfo = 2000;
    ULONG_PTR exInfoPTR = new ULONG_PTR(extraInfo);
    

    Funktioniert in C++ nicht, das wäre C#

    MfG



  • ...



  • Wenn ich den Struct nehme den auch du genommen hast:

    MSLLHOOKSTRUCT *ll_hook_struct{ reinterpret_cast< MSLLHOOKSTRUCT* >( lparam ) };
    

    funktioniert alles.
    Vielen Dank 🙂
    Problem beseitigt 😃


Anmelden zum Antworten