Musklick simulieren, aber anwendungsunabhängig



  • Hallo Ihr!

    Ich habe eine Anwendung, welche ich über Signale steuere. Ein Menü dieser Anwendung macht mir allerdings schwierigkeiten.

    Ich kann das MENÜ steuern, wenn ich dieses zwischendurch mit der Maus manuel anklicke (es aktiv setze). Wenn dann mein Programm an die Stelle kommt, funktioniert es.

    Andernfalls, ohne einen manuellen Klick, werden alle Signale ignoriert, da das Menü nicht aktiv ist, obwohl ich dies mit diversen Befehlen versucht habe:

    Anwendungsbezogen:
    SendMessage(handleMENU, VK_LBUTTON, 0, 0); //geht nicht!
    SendMessage(handleMENU, WM_LBUTTONDOWN, 0, 0);//geht nicht!
    SendMessage(handleMENU, WM_LBUTTONUP, 0, 0); //geht nicht!

    ShowWindow(handleAnwendungVonMenu, SW_SHOWMAXIMIZED); //geht nicht!
    ShowWindow(handleAnwendungVonMenu, SW_SHOWMAXIMIZED); //geht nicht!

    Wenn ich danach diese Befehle ausführe, werden Sie von einer anderen Anwendung abgefangen.

    keybd_event(VK_DOWN,0,0,0);
    keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0);
    keybd_event(VK_RETURN,0,0,0);
    keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);
    (wie gesagt, wenn ich das MENU vorher anklicke (aktiv setze), funktionien diese Befehle)
    ---------------------------------
    --> Nun suche ich einen Befehl / eine Funktion, welche/r mir einen Mausklick an der Stelle simuliert, an der sich die Maus gerade befindet.

    Schönen Dank im Vorraus!



  • FAQ you! 😉



  • Hallo!

    Hatte es gestern direkt nach dem Einstellen meiner Frage noch auf einer Internetseite gefunden, kam aber danach nicht mehr auf diese Forum-Seite!

    SORRY!!!

    ➡ Aber hier die Lösung:

    ---> MAUSKLICK an beliebiger Stelle simulieren:
    💡
    mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
    Wollen Sie einen richtigen Mausklick simulieren, müssen Sie auch für das Loslassen der Maustaste sorgen:
    mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

    Lösung aus Seite:
    http://www.alpha-factory.de/Hilfe/prog.htm#170

    Gruß,
    lautiba


Anmelden zum Antworten