mouse_event Sleep



  • Guten Tag,

    Problemstellung:

    Ein normaler Klick soll ausgeführt werden, ohne Sleep zu benutzen, da es leider meine anderen If-Abfragen der Funktion eben für die Zeit stoppt. (Zeit 150ms zwischen den mouse_events).

    Das Problem hierbei liegt, dass einfach die Maustaste permanent gedrückt wird. ( Sollte eigentlich nach 150ms wieder beendet sein?)

    Vielleicht ist noch wissenswert, dass die Funktion in einem Thread/Schleife ausgeführt wird (10ms)

    bool mouseHoldDown = false;
    
    DWORD mouseTickDown = NULL;
    
    if (!mouseTickDown)
    	mouseTickDown = GetTickCount64();
    
    if (!mouseHoldDown) {
    	mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    	mouseHoldDown = true;
    }
    
    if ((GetTickCount64() - mouseTickDown > 150) && mouseHoldDown)
    {
    	mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    
    	mouseTickDown = 0;
    	mouseHoldDown = false;
    }
    

    Vielleicht ein kleiner Denkfehler?
    Gibt es irgendwas zum abfragen, ob ein mouse_event "beendet" ist? Würde das Sleep/TickCount etc. sparen.

    Bedanke mich für jegliche Hilfe
    🙂



  • Wie soll das gehen?
    Wenn die Abfrage

    if ((GetTickCount64() - mouseTickDown > 150) && mouseHoldDown)
    

    kommt, ist noch nicht entsprechend viel Zeit vergangen, deshalb ist die Bedingung nicht erfüllt, und

    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    
        mouseTickDown = 0;
        mouseHoldDown = false;
    

    wird nicht ausgeführt. 😕



  • ja, ist mir bewusst, habe jedoch dazu geschrieben dass es in einer Schleife ausgeführt wird.

    sollte doch normalerweise "loslassen" ?


Log in to reply