Prozess-Killer Hyperspin : seltsames verhalten

  • Hallo,

    ich habe mal einen Prozess-Killer für das Arcade-Frontend geschrieben.
    Zur Erklärung:
    Über $CmdLine[1] bekommt das script die exe des Emu übergeben.
    Aus einer ini werden die HotKeys ausgelesen.
    Das script überwacht die exe und läuft solange diese aktiv ist und prüft dabei ob die hotkeys gedrückt wurden.
    Eigentlich funktioniert das script, aber wenn ich es 5 -10 mal hintereinander ausführe, wobei es immer beendet wird, im TaskManager nicht mehr zusehen ist und jedesmal aufs neue gestartet wird, killt es automatisch den Prozess nach ein paar Sekunden nach dem start oder es reicht einer der Hotkeys um den Prozess zu killen. Es fühlt sich an als würde da etwas im speicher noch hängen. Manchmal hilft nur ein Neustart des Rechners.

    Hier mal das Script: Irgendwie bekommt ich den code nicht richtig formatiert... macht mir ständig die Returns weg... deshalb im Spoiler

    Spoiler anzeigen


    #include <Misc.au3>

    Opt('TrayIconHide', 1)

    ;Read ini-file
    $key1 = IniRead("emu_killer.ini","HOTKEY","key1","")
    $key2 = IniRead("emu_killer.ini","HOTKEY","key2","")
    $hDLL = DllOpen("user32.dll")

    global $Process = $CmdLine[1]

    ;Wait to kill emu_____________________________________________


    While ProcessExists($Process)
    If _IsPressed($key1, $hDLL) And _IsPressed($key2, $hDLL) Then
    kill()
    EndIf
    sleep(100)
    WEnd


    ;Kill-function_________________________________________________

    Func kill()

    ProcessClose($Process)
    ProcessClose("HyperLaunch.exe")

    WinActivate("HyperSpin")

    EndFunc

    Jemand ne Idee...???

    EDIT:
    Ich habe gerade gesehen, dass ich die userdll nicht schließe... werde das mal probieren...wenns überhaupt nötig ist.
    EDIT:
    Das Schließen der dll hat auch nichts gebracht... an Hyperspin kann es auch nicht liegen, da das Problem auch außerhalb Hyperspin auftaucht.
    EDIT:
    Was auch sehr strange ist, wenn das Script die exe ohne Grund selbständig killt, hilft es kurz nach dem start des scripts schnell ein der beiden hotkeys zu drücken damit die exe nicht gekillt wird. Dann klappt alles wieder normal.
    Somit die Vermutung, dass es wirklich etwas mit der Dll zutun haben muss.

    EDIT:
    Habs jetzt mit AutoHotkey gelöst. Konnte den Fehler auch nicht auf anderen Rechnern reproduzieren.

    7 Mal editiert, zuletzt von flynt_castwood (6. Februar 2013 um 08:15)