Kleine AutoIt Funktion zu C++

  • Nabend!

    Also ich habe hier einen kleinen 13 Zeiler welchen ich einfach nicht nach C++ portiert bekomme...

    Spoiler anzeigen
    [autoit]

    while Sleep(10) if WinExists("Meldung von Webseite", "") then ; Win 7 / IE8 WinActivate("Meldung von Webseite", "") ControlClick("Meldung von Webseite", "", "[CLASS:Button; INSTANCE:1]") Exit Elseif WinExists("Microsoft Internet Explorer", "") then ; Win XP / IE7 WinActivate("Microsoft Internet Explorer", "") ControlClick("Microsoft Internet Explorer", "", "[CLASS:Button; INSTANCE:1]") Exit EndIfWEnd

    [/autoit]


    Die Funktion 'ControlClick' macht mir am meißten Kopfweh, aber auch 'WinExists' und 'WinActivate'... Das liegt vielleicht an meinem Mieserablen C++ Helpfile - könnte aber auch an meinem Skill liegen :D

    Mag mir vielleicht jemand helfen??? Ich nutze Code:Blocks und DevCpp.

    Grüsse!

    [EDIT]
    Iwie hat sich die Formatierung zerschossen.... Ich habs jetzt auch als Anhang eingefügt.

  • Ich könnte hier mal eine Minimalversion meines AutoC anhängen. Damit kann man in C/C++ einiges ähnlich wie in AutoIt machen.

    Edit: Lange nicht mehr probiert. Das ganze läuft nicht unter Win7.


    Edit2: Hab nun gefunden was Win7 gestört hat und herausgenommen. Anbei das Codeblocks-Projekt. Noirmalerweise funktioniert es sehr gut, aber Garantie gebe ich keine.

  • Hallo!
    Danke schonmal für die ganzen Antworten! Ich werde wohl erstmal die Version von Funkey probieren.

    Um es mal zu verdeutlichen: Eigentlich geht es nur um die Automatisierung einer Inetenerseite via IE, da ich aber an einer Stelle nimmer weiterkomme (_IEAction lässt mein Script Pausieren) Da erscheint dann eine Meldung vom Browser und die muß eben Geklickt werden damit alles schön weiterläuft.
    Ich hab´s ja auch mit AU3 gelöst - ABER es ist unschön dort 2 exen u haben! _Zumal der 13-Zeiler kompiliert ganze 295KB groß ist. Ich muß diese 'Funktion' in einem Externen Programm auslagern, welches ich wiederum als HEX im Sourcecode unterbringen möchte. Da aber dann aus der 295KB exe eine 2xgrössere Hex-Variable wird -- Wird mein ganzer Source von jetzt 20 KB NUR wegen dieser Funktion auf über 600KB angehoben.
    Und das geht garnicht!

    Deswegen dachte ich mir diese Funktion als C / C++ / iwas zu Kompilieren und ich Denke das die erstellte exe dan nimmal 15KB hat!
    Die Sprache ist 2.Rangig - Es kommt einfach nur auf die Grösse drauf an.


    [EDIT]
    Hey Super! Danke an Funkey!! Es läuft so wie du es 'Portiert' hast - Nur beendet es sich nich von selber, das stellt aber kein Problem da! Und dein AutoC ist echt prima - wieso kannte ich es noch nicht...

    Grüsse!

    Einmal editiert, zuletzt von Techmix (26. Februar 2012 um 11:56)

  • Du kannst auch per $CMDLINE-Array je Kommandozeilenparameter normal starten oder nur einen bestimmten Codeblock (das WinWait usw) ausführen lassen ;)

    [autoit]

    If CMDLINEPARAMETER_WAIT_EXISTS Then
    DO_WAIT
    Exit
    EndIf

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

    NORMAL_SCRIPT
    Run(@AutoItExe & " -WAIT_FOR_WINDOW")

    [/autoit]