Bitte um Korrektur meines Anfängerscripts ;)

  • Hallo!

    Ich habe versucht ein kleines Script zusammen zu stellen, aber irgentwie will es nicht funktionieren und ich weiß nicht was ich falsch gemacht habe.

    Zur Erklärung:
    Dieses Script soll auf einem PC laufen der weit ab auf unserem Modellflugplatz laufen soll und sich über einen UMTS Stick mit dem Internet verbindet. So wäre er dann über Teamviewer erreichbar.
    Zur Sicherheit, dass der PC auch bei einer Netzstörung sich wieder verbindet habe ich dieses Script geschrieben.
    Der PC verbindet sich beim Starten automatisch - dafür habe ich schon ein funktionierendes Script gemacht, und dieses Script sollte dafür da sein, dass immer nach einer bestimmten Zeit wieder überprüft wird, ob er online ist. Wenn er nicht online ist kann es passieren dass ein Fenster aufgeht mit der Meldung "Fehler" "Die Verbindung ist fehlgeschlagen" - dies sollte geschlossen werden falls es auftaucht. Und dann sollte der Web´n´walk Manager aufgemacht werden und auf "Verbinden" geklickt werden.

    Wenn ich das Script laufen lasse bekomme ich eine Fehlermeldung ..siehe Bild

    Was ist denn da falsch?

    ...ach ja... es läuft Win7 32bit SP1


    [autoit]

    While 1
    Sleep ( 120000)

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

    $host = "google.com"

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

    If Ping($host) =0 Then
    If WinExists( "Fehler" [, "Die Verbindung ist fehlgeschlagen. [0x84000011]"] ) Then ControlClick("Fehler", "Die Verbindung ist fehlgeschlagen. [0x84000011]", "Button1", "LEFT", 1)
    Run( "C:\Program Files\T-Mobile\web'n'walk Manager\web'n'walk Manager.exe")
    ControlClick( "web'n'walk Manager", "Verbinden", "Button1", "LEFT", 1)
    EndIf
    Sleep ( 1800000)
    WEnd

    [/autoit]
  • Dein Fehler ist ganz simpel. Wenn du den Code in Scite ausgeführt hättest, hättest du auch eine super Fehlermeldung bekommen welche dir den Fehler genau sagt :)

    Code
    If WinExists( "Fehler" [
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Users\error\Desktop\test.au3 - 1 error(s), 0 warning(s)
    !>09:48:58 AU3Check ended. Press F4 to jump to next error.rc:2
    >Exit code: 0    Time: 0.311

    Meinst du, du bekommst es hin? ;)

  • Vielleicht noch als zusätzliche Hilfestellung: Wenn du eckige Klammern "[ ]" in einer Funktionsbeschreibung findest bedeutet es das diese Parameter optional sind (einen vordefinierten Wert haben). Wenn du sie aber setzt machst du das wie mit "normalen" Parametern. Das heißt du schreibst die Eckigen klammern nie in den Funktionsaufruf.

  • Vielen Dank für die Hilfe!

    Ich habe das script jetzt noch etwas umgschrieben, so dass es 5 Minuten nach dem PC-Start anfängt zu prüfen ob der PC online ist und dann jede halbe Stunde einmal.
    ...und die 30 Sekunden Wartezeit zwischen dem Öffnen des Web´n´walk Manager und dem ControlClick auf Verbinden sollten dazu dienen, dass sich der Web´n Walk Manager im Handynetz registrieren kann.

    Der Code sieht nun so aus, und scheint zu funktionieren! :D

    [autoit]

    While 1
    Sleep ( 300000)

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

    $host = "google.com"

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

    If Ping($host) =0 Then
    If WinExists( "Fehler" , "Die Verbindung ist fehlgeschlagen. [0x84000011]") Then WinClose("Fehler", "Die Verbindung ist fehlgeschlagen. [0x84000011]")
    Sleep (1000)
    Run( "C:\Program Files\T-Mobile\web'n'walk Manager\web'n'walk Manager.exe")
    Sleep (30000)
    ControlClick( "web'n'walk Manager", "Verbinden", "Button1", "LEFT", 1)
    Sleep (5000)
    WinClose ("web'n'walk Manager")
    EndIf
    Sleep ( 1500000)
    WEnd

    [/autoit]
  • [autoit]

    $host = "google.com"

    [/autoit]

    Kann raus aus der While-Schleife. Es reicht, wenn es einmal anfangs zugewiesen wird.