Explorer startet nicht mehr

  • Hey all,

    aus nostalgischen Gründen hab mich mir wieder mein altes (und lieb gewonnenes) Cossacks installiert. Das ist ein Game von 2002 glaub ich. Leider ist es mit Win7 x64 nicht ganz kompatibel.
    Damit man es vernünftig spielen kann, sollte es im "Kompatibel-Mode: XP-SP3" ausgeführt werden. Das klappt ja alles. Aber dann treten zusätzlich noch Probleme mit der Farbdarstellung aus.

    Lösung hierfür:
    Starte das Game OHNE den explorer.exe-Prozess
    also beende ich diesen hiermit

    [autoit]

    RunWait('"' & @ComSpec & '" /c taskkill /F /IM explorer.exe', '')

    [/autoit]


    Dann starte ich die "Cossacks.lnk" und das Game startet auch endlich so wie es soll, ohne grafische Fehler.

    Aber:
    Sobald ich das Game beende, will ich, dass der Explorer wieder gestartet wird, aber irgendwie will das nicht so wie ich.
    Kann mir jemand nen Tip geben?

    Mein Code bis jetzt

    [autoit]

    RunWait('"' & @ComSpec & '" /c taskkill /F /IM explorer.exe', '')
    Sleep(200)
    ShellExecuteWait("cossacks.lnk","","D:\Cossacks - Back To War")
    ;~ ShellExecute("explorer.exe","",@WindowsDir)
    ;~ Run('"' & @ComSpec & '" /c start explorer.exe', '', @SW_HIDE)

    [/autoit]


    die beiden auskommentierten Zeilen funktionieren beide nicht

  • warum beendest du den explorer via Console?

    [autoit]


    ProcessClose("explorer.exe")
    Sleep(200)
    ShellExecuteWait("cossacks.lnk","","D:\Cossacks - Back To War")

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

    Run("explorer.exe")

    [/autoit]


    so sollte es gehen, du musst aber gucken, wie der Prozess genau heißt von Cossacks ^^

    mfg

    EDIT: habe ein Not vergessen :)
    EDIT2: tut mir leid hab nicht genau gelesen ShellExecuteWait wartet ja schon :)
    aber das Run("explorer.exe") ist ja richtig so^^

  • [quote='Krabat','index.php?page=Thread&postID=244352#post244352']warum beendest du den explorer via Console?

    [autoit]


    ProcessClose("explorer.exe")
    Sleep(200)
    ShellExecuteWait("cossacks.lnk","","D:\Cossacks - Back To War")

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

    Run("explorer.exe")

    [/autoit]


    so wird es leider nicht gehen, denn unmittelbar nach dem normalen ProcessClose startet sich der Explorer wieder neu. Geht also nur über der von mir verwendeten Befehlszeile.
    Und der Befehl Run("explorer.exe") funzt leider auch nicht.
    Aber danke trotzdem.

  • ich habe mir gerade mal informiert und ShellExecuteWait geht nicht bei einer verknüpfung ;)
    das script wird nicht pausiert, dadurch der explorer direkt wieder gestartet

    [autoit]


    ProcessClose("explorer.exe")
    Sleep(200)
    ShellExecute("cossacks.lnk","","D:\Cossacks - Back To War")

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

    Do
    Sleep(2000)
    Until Not ProcessExists("cossack.exe") ; du musst gucken wie der prozess richtig heißt ;)

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

    Run("explorer.exe")

    [/autoit]


    und damit hatte mein erster gedanke doch recht gehabt ;D

    also unter meinem WinXP funktioniert das so

    mfg