Script sollte pausieren, macht es aber nicht

  • Einen wunderschönen Montag. Ich habe folgenden Code geschrieben:

    [autoit]

    ; Daten kopieren
    If FileExists("%ALLUSERSPROFILE%\Anwendungsdaten\Cornelsen\315612") Then
    DirRemove(@AppDataCommonDir & "\Cornelsen\315612", 1)
    EndIf

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

    If NOT FileExists("H:\spielstand\Cornelsen\315612") Then
    DirCopy("V:\Cornelsen\English Coach Highlight 6. Klasse\315612", @AppDataCommonDir & "\Cornelsen\315612", 1)
    Else
    DirCopy("H:\Spielstand\Cornelsen\315612", @AppDataCommonDir & "\Cornelsen\315612", 1)
    EndIf

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

    ; Programm starten
    RunWait("C:\Programme\Cornelsen\EC New Highlight 2\StartupLoader.exe")

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

    Sleep(3000)
    ProcessWait("MainLoader.exe")

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

    DirCopy(@AppDataCommonDir & "\Cornelsen\315612", "H:\Spielstand\Cornelsen\315612", 1)

    [/autoit]

    Da der StartupLoader nur den MainLoader startet, gibt es hier noch ein kurzes Sleep und dann ein ProcessWait, damit er erst fortfährt, wenn das Programm beendet wurde. Er fährt aber einfach mit dem Skript fort, was aber den letzten Kopiervorgang nutzlos macht.

    Danke für Ideen.

    Einmal editiert, zuletzt von WhatTheDuck (30. Juni 2008 um 14:02)

  • Hi,

    ersetze mal

    [autoit]

    ProcessWait("MainLoader.exe")

    [/autoit]


    durch

    [autoit]

    ProcessWaitClose("MainLoader.exe")

    [/autoit]


    Der Unterschied ist, bei ProcessWait wartet er ob der Prozess da ist und läuft weiter, bei ProcessWaitClose wartet er bis der Prozess nicht mehr da ist und läuft dann weiter.

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)