Mit GUI im Vordergrund halten und im Hintergrund Klicks ausführen

  • Hey Leute,
    Ich bin gerade dabei ein kleines Script zu schreiben um Einstellungen in einem Programm vorzunehmen. Jedoch soll der GUI des Scripts immer Im Vordergrund sein und den aktuellen Status anzeigen und im Hintergrund bzw. im dahinter liegenden Fenster des Tools sollen die Klicks ausgeführt werden.

    Um den GUI im Vordergrund zu halten benutze ich folgenden Code:

    Code
    #include <GUIConstants.au3>
    Global $idGUI = GUICreate("Form1", 625, 443, 193, 125)GUISetState(@SW_SHOW)WinSetOnTop($idGUI, "",1)


    Für die Klicks benutze ich MouseClick(), WinActivate("") und Opt("MouseCoordMode",0), wenn der GUI jetzt aber direkt über einer zu klickenden Stelle steht, wird der GUI angeklickt und nicht das Programm. Ich habe es auch schon mit ControlClick() ausprobiert aber das Programm scheint dies nicht anzunehmen bzw. erkennt den Klick nicht. Habe es dann auch noch mit AutoHotkey ausprobiert wenn ich dort ConrolClick verwende sieht man nur das er das Fenster focussiert aber ein Klick wird dennoch nicht ausgeführt.

    Achja das Script schreibe ich für die Schule da ich dort zusammen mit meinem WP2-Computer-Kurs das Programm auf jedem Computer der Schule Installieren & Konfigurieren möchte.

    Vielen Dank im Vorraus,
    Triban1337

  • Versuch es mal mit

    [autoit]


    ControlClick ( "title", "text", controlID [, button = "left" [, clicks = 1 [, x [, y]]]] )

    [/autoit]


    zum klicken und

    [autoit]

    ControlSend ( "title", "text", controlID, "string" [, flag = 0] )

    [/autoit]


    zum senden des Textes
    Title=Titel des Fensters
    Text=""
    controlId:
    siehe Au3Info.exe (installationsverzeichnis von Autoit)

    Ansonsten einfach die Hilfe zu den beiden Befehlen durchlesen.

    Viel Glück noch.

    PS: Würdest du dein komplettes Script lauffähig posten, bzw. auch das zu installierende Programm könnte ich dir evtl. auch präziser helfen :D

  • Versteh ich das richtig, dein GUI soll das Programm überlagern/verdecken und trotzdem die Klicks in diesem ermöglichen?
    Also das GUI soll den Fokus haben aber dennoch die Eingaben mit deiner Maus ignorieren, als hätte dein GUI nicht den Fokus?

    Klingt etwas verwirrend, wozu soll denn dein GUI dienen, warum das Programm überlagern?

  • Mit controlclick() funktioniert es nicht habe es schon ausprobiert auch schon genau wie Kanashius es geschrieben hat.

    Was fast zu Funktionieren scheint ist

    Code
    Send(MouseClick("LEFT", 132, 14))

    Jedoch buggt es dann genau an dieser Stelle dieser Klick wird immer und immer wieder ausgeführt und das Script läuft nicht mehr weiter wie ein ewiger loop :cursing:

  • Mit controlclick() funktioniert es nicht habe es schon ausprobiert auch schon genau wie Kanashius es geschrieben hat.

    Was fast zu Funktionieren scheint ist

    Code
    Send(MouseClick("LEFT", 132, 14))

    Jedoch buggt es dann genau an dieser Stelle dieser Klick wird immer und immer wieder ausgeführt und das Script läuft nicht mehr weiter wie ein ewiger loop :cursing:


    Dir wird keiner Helfen können, wenn du nicht auch uns antwortest. ;)
    Dazu gehört auch eine nähere Erläuterung deines Vorhabens.

    Bis jetzt wissen wir nur, dass du in irgend einem Programm irgend etwas anklicken willst, aus irgend einem Grund dieses Programm aber gleichzeitig mit einem GUI überlagern willst