Process Überwachungs Programm

  • hey Community,
    muss ich mal wieder nerven :P.
    Habe folgendes Programm geschrieben


    [autoit]


    #include <GUIConstants.au3>
    #include <Array.au3>
    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Programm-Checker", 214, 72, 193, 125)
    $Label2 = GUICtrlCreateLabel("Pfad:", 0, 22, 29, 17)
    $1 = GUICtrlCreateInput("", 40, 24, 147, 21)
    $Button1 = GUICtrlCreateButton("...", 188, 24, 23, 21, 0)
    $Button2 = GUICtrlCreateButton("Speichern", 2, 50, 61, 19, 0)
    $Button3 = GUICtrlCreateButton("Vorschau", 76, 50, 61, 19, 0)
    $Button4 = GUICtrlCreateButton("Werbung", 150, 50, 61, 19, 0)
    $Label1 = GUICtrlCreateLabel("PN:", 2, 0, 22, 17)
    $2 = GUICtrlCreateInput("", 40, 0, 147, 21)
    $Label3 = GUICtrlCreateLabel("?", 194, 0, 10, 17)
    GUISetState(@SW_SHOW)
    #endregion ### START Koda GUI section ### Form=

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Label3
    MsgBox(48, "Process Name", "Gebe hier bitte den Process Namen des entsprechenden Programmes ein" & @CRLF & "Wird gebraucht!!")
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $ziel = FileOpenDialog("?fad wählen", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", "Programme (*.exe)")
    GUICtrlSetData($1, $ziel)
    Case $Button2
    $eingabe1 = GUICtrlRead($1)
    $eingabe2 = GUICtrlRead($2)
    IniWrite(@DesktopDir & "\Programme.ini", "Programme", "1", $eingabe1 & " - " & $eingabe2)
    Case $Button3
    $lol = IniReadSection(@DesktopDir & "\Programme.ini", "Programme")
    _ArrayDisplay($lol)
    Case $Button4
    WinSetState("Program.-Checker", "", @SW_HIDE)
    MsgBox(0, "Werbung", "Programm geschrieben von Benedikt 'r1fLeX' Schubert." & @CRLF & "Visit me @ http://r1flex.kilu.de" & @CRLF & "Or contact me via ICQ @ 216-308-658")
    WinSetState("Programm-Checker", "", @SW_SHOW)
    EndSwitch
    WEnd

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

    While 1
    $array = IniReadSection(@DesktopDir & "\Programme.ini", "Programme")
    For $i = 1 To $array[0][0]
    $ziel = IniRead(@DesktopDir & "\Programme.ini", "Programme", $array[$i][0], "0")
    $lol2 = StringSplit($ziel, " - ")
    If Not ProcessExists($lol2[2]) Then
    Run($lol2[2])
    ToolTip($lol2[2] & " wurde aktiviert!", 0, 0, "Achtung!")
    EndIf
    Next
    WEnd

    [/autoit]


    Aber "er" erkennt leider nicht dsa es den Process nicht gibt. Woran könnte das liegen?
    mfg

    2 Mal editiert, zuletzt von r1fLeX (2. Dezember 2008 um 19:15)

    • Offizieller Beitrag

    Also. hab des Script mal überflogen. Wie willst du hiemit

    [autoit]

    If Not ProcessExists (StringSplit ($ziel," - ")) Then

    [/autoit]


    testen ob en Process am laufen ist ? Stringsplit liefert ein Array als Ergebnis (siehe Hilfe). Was auch net klappen wird ist wie du die INI schreibst . Ich denke mal du willst in der INI nicht nur 1 programm drinnehaben. Bei IniWrite solltest du den Key nicht fest auf 1 einstellen.

  • Hey , danke .. aber habe den Source aktualisiert^^.
    Das mit der INI ist erstmal nebensächlich.

    • Offizieller Beitrag

    Das macht keinen Unterschied. Eine Endlosschleife bleibt eine Endlosschleife, ganz egal welche Zahl Du da einträgst.
    Du musst Dir erstmal Deinen Programmablauf anschauen. Die erste Endlosschleife wird doch nirgendwo verlassen (Stichwort: ExitLoop).

    Edit: Oder, was hier angebrachter wäre, Du läßt die zweite Schleife weg, packst den Rest aus der 2. Schleife in eine Funktion und rufst diese per AdlibEnable auf.

  • Raupi , ich sag dirj etzt mal was:
    Es gibt auch Menschen die noch andere Dinge im Kopf haben ausser AutoIt.
    Ich musste mich heute zum Beispiel um folgende Dinge kümmern...
    Ausbildungsvertrag suchen und bescheinigen lassen
    Rucksack für morgen Berufsschule packen
    Zeichnung zu ende machen
    Wii wegbringen
    Antwort Brief an Bundeswehr fertig machen ( Artztsachen etc... )
    Also jetzt versuch mich nochmal anzumachen >.<.

  • Pee , na klar , aber ich habe damit nicht angefangen.
    Ich habe ledeglich eine simple Frage gestellt wodrauf so ne Antwort kommt.