Splashtext ControlClick Mouseklick

  • Hallo,

    ich muß MouseClicks im Hintergrund ausführen.
    Das ganze soll aber mit einem InfoText (Splahtext) versehen werden.


    Das klappt leider nicht!
    Hier mal mein Beispiel :

    Spoiler anzeigen
    [autoit]


    Opt('MouseCoordMode',0)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ShellExecute("Notepad.exe","","","", @SW_MAXIMIZE)
    WinActivate("[CLASS:Notepad]", "")

    [/autoit] [autoit][/autoit] [autoit]

    Local $size = WinGetPos("[active]")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    SplashTextOn("Titel", "Klicks werden im Hintergrund gemacht!", -1,-1 , $size[0]+@Desktopwidth/4, $size[1]+@Desktopheight/4, 4, 2, 24)

    [/autoit] [autoit][/autoit] [autoit]

    MouseClick("left",749,313,1)
    ;~ MouseClick("left",245,158,1)
    ;~ MouseClick("left",985,160,1)
    ;~ MouseClick("left",453,761,1)
    ;~ MouseClick("left",267,562,1)
    ;~ MouseClick("left",1096,706,1)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(3000)
    SplashOff()

    [/autoit]

    Wenn Splashtext deaktiviert wird, werden die Klicks gemacht.

    Wie kann ich einen Infotext über die Klicks setzen
    ohne dass die Klicks beeinflusst werden! ToolTipps sind zu klein!
    2 = Ohne "immer im Vordergrund" Attribut. geht auch nicht!


    Keine ControlClicks! Das geht sehr oft nicht!
    (Oder gibt es eine sichere Möglichkeit MouseClicks in ControlClicks umzuwandeln?)

    Spoiler anzeigen
    [autoit]


    Opt('MouseCoordMode',0)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ShellExecute("Notepad.exe","","","", @SW_MAXIMIZE)
    WinActivate("[CLASS:Notepad]", "")
    Sleep(4000)
    Local $size = WinGetPos("[active]")

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "Die Koordinaten des aktuellen Fensters lauten (x, y, Breite, Höhe):", $size[0] & " " & $size[1] & " " & $size[2] & " " & $size[3])
    ;SplashTextOn("Titel", "Klicks werden im Hintergrund gemacht!", -1,-1 , $size[0]+@Desktopwidth/4, $size[1]+@Desktopheight/4, 4, 2, 24)

    [/autoit] [autoit][/autoit] [autoit]

    MouseClick("left",23,41,1)
    ;ControlClick("","","","left",1,$size[0]+23,$size[1]+41)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(4000)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Sleep(3000)
    SplashOff()

    [/autoit]

    Mouseclick funktioniert, Controlclick nicht!

    Grüße
    Ilse ;)

    3 Mal editiert, zuletzt von Ilse (15. März 2014 um 12:34)

  • Hallo Rynow,

    meine Versuche mit ControlClick klappen nicht!
    All meine Mausklicks funktionieren.
    Wie kann man das umwandeln auf ControlClicks? Ohne Angabe v. ID's, Fenster nur Coordinaten!
    geht das?

    Spoiler anzeigen
    [autoit]


    Opt('MouseCoordMode',0)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ShellExecute("Notepad.exe","","","", @SW_MAXIMIZE)
    WinActivate("[CLASS:Notepad]", "")
    Sleep(4000)
    Local $size = WinGetPos("[active]")

    [/autoit] [autoit][/autoit] [autoit]

    ;MsgBox(0, "Die Koordinaten des aktuellen Fensters lauten (x, y, Breite, Höhe):", $size[0] & " " & $size[1] & " " & $size[2] & " " & $size[3])
    ;SplashTextOn("Titel", "Klicks werden im Hintergrund gemacht!", -1,-1 , $size[0]+@Desktopwidth/4, $size[1]+@Desktopheight/4, 4, 2, 24)

    [/autoit] [autoit][/autoit] [autoit]

    ;MouseClick("left",23,41,1); klappt
    ;ControlClick("","","","left",1,$size[0]+23,$size[1]+41); klappt nicht
    ControlClick("","","","left",1,23,41); klappt nicht
    ControlClick("","","","left",1,1939,89); klappt nicht! (m. Infotool ermittelt)

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(4000)

    [/autoit] [autoit][/autoit] [autoit]

    SplashOff()

    [/autoit]

    2 Mal editiert, zuletzt von Ilse (14. März 2014 um 17:21)

  • Mouseclick() kann nicht im Hintergrund erfolgen. Es wird immer in das Fenster geklickt, das an dieser Position gerade im Vordergrund ist. Wenn dein Splashtext also vor dem eigentlichen Fenster liegt landet dein Mausklick im splashtext Fenster, so wie wenn du eben manuell an diese Position klicken würdest. Klicks im Hintergrund oder sogar in unsichtbaren Fenstern sind nunmal nur durch controlclick() möglich, da hier kein echtes klicken simuliert wird sondern die window msg die durch einen Klick ausgelöst werden würde.

    Dass dein controlclick() so nicht funktioniert sollte ja wohl auch klar sein. Zum einen ist die Angabe eines Fenstertitels bzw. einer Fensterdefinition plus Definition des Controls absolut erforderlich, zum anderen beziehen sich die Koordinaten nicht auf den Desktop oder das Fenster, sondern auf das control. Die Koordinatenangabe ermöglicht also bei controlclick den Klick auf eine bestimmte Stelle innerhalb eines Controls. Das kann hilfreich sein wenn man nur eindeutige Daten für ein "Rahmen" control herausfinden kann und darin andere Elemente enthalten sind (z.B. eine eingebettete html Seite in einer GUI, was gelegentlich bei diversen Installern vorkommt).

    Wie dem auch sei vielleicht solltest du einfach mal Klartext reden was diese Klickscripterei für einen Sinn hat bzw. was du damit überhaupt automatisieren willst. Wenn es immernoch um Webseitenautomatisierung geht (war da nicht mal was von wegen Kleinanzeigen undso?), dann schau dir bitte die IE und FF Funktionen an oder benutze eine evtl. vorhandene API der Webseite in Verbindung mit winhttp. Alles andere macht keinen Sinn wie du ja sicherlich inzwischen auch bemerkt hast.

  • Hallo Misterspeed,

    das habe ich mir fast gedacht. Schade.
    IE und FF Funktionen sind bekannt.
    Dank deiner tollen Erklärung sehe ich mal wieder etwas klarer.

    Liebe Grüße
    Ilse ;)