ProcessExists

  • Hallo!

    Ich habe mal wieder ein Problem!

    Also ich habe eine If Schleife gemacht... die sieht so aus:


    [autoit]

    If ProcessExists("diashow.exe") Then
    Msgbox(64, "Diashow", "Diashow läuft bereits")
    Else
    ...
    ...
    ...

    [/autoit]


    Aber er zeigt mir immer die msg box an! Aber Warum?


    Vielen dank im Vorraus =)


    Lenny

    Edit1:
    Okay ist klar geworden!
    Ich wollte damit erreichen das das programm nur einmal läuft!
    Allerdings existiert der Prozess ja schon wenn ich die Diashow.exe ausführe, inder geprüft wird ob es den prozess schon gibt! =)

    Danke Trotzdem^^

    Jaja, Moo does the Cow!

    Einmal editiert, zuletzt von Lenny (12. Dezember 2007 um 16:38)

  • läuft die "diashow.exe" während du testest oder nicht?
    der code unten ist ohne EndIf nicht lauffähig und hast du es auch mitm Taskmanager überprüft vielleicht läuft die exe weiter auch wenn du sie beendet hast

  • Hallo!

    hier meine Lösung:


    im Programm:

    $laufich=_countrunningprocess("meinprogrammname.exe")
    if $laufich > 1 then
    ; mehrfachstart
    exit
    EndIf


    Func _countrunningprocess($Process)

    ; funktion:
    ; Wie oft läuft das Programm im Hauptspeicher des Systems
    ; Version 1.00 20070601 GD

    $Anzahl=0
    ; List all processes

    $list = ProcessList()

    ; List just notepad.exe processes
    $list = ProcessList()
    for $i = 1 to $list[0][0]
    ; msgbox(0, "es läuft" ,$list[$i][0],1)
    $Pname=$list[$i][0]
    if StringInStr($list[$i][0],$Process) then
    $anzahl=$anzahl+1
    EndIf
    next

    Return $anzahl

    EndFunc

    ; ###################################