Starten und Beenden

  • du musst aber auch aufpassen, wenn z.b firefox zweimal offen ist!
    ich hab das in einem script mal so gelöst!

    [autoit]


    ;----prüfe auf geöffnete programme----
    Dim $avArray[7]
    ;Galileo:
    $avArray[0]="viewpointListener.exe"
    $avArray[1]="Viewpoint.exe"
    $avArray[2]="hcmmux.exe"
    ;I5:
    $avArray[3]="pcscm.exe"
    $avArray[4]="pcsws.exe"
    ;Blank:
    $avArray[5]="GL.EXE"
    ;Traffics:
    $avArray[6]="tc.exe"

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

    For $i = 0 To 6

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

    ;MsgBox(0,"",$avArray[$i])
    ;GUICtrlSetData($label, '... prüfe ' & $avArray[$i] &' ...')
    ;Sleep(500)
    While 1
    If ProcessExists($avArray[$i]) Then
    ProcessClose($avArray[$i])
    Else
    ;MsgBox(0,"","Springe aus schleife",2)
    ExitLoop
    EndIf
    WEnd
    Next

    [/autoit]

    gruß gmmg

  • @prajos
    also sind parameter in diesem fall sowas wie Title, Class und sowas?
    dachte da eher an sowas wie /silence /qn oder so ^^

  • [autoit]

    Dim $programs[11][3]
    $programs[0][0] = "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
    $programs[0][1] = ""
    $programs[0][2] = "firefox.exe"

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

    $programs[1][0] = "C:\Program Files (x86)\FreeCommander\FreeCommander.exe"
    $programs[1][1] = ""
    $programs[1][2] = "FreeCommander.exe"

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

    $programs[2][0] = "C:\Program Files (x86)\Adobe\Reader 10.0\Reader\AcroRd32.exe"
    $programs[2][1] = ""
    $programs[2][2] = "AcroRd32.exe"

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

    $programs[3][0] = "C:\Program Files (x86)\HC_Software\infoBoardSE_Client\infoBoard.exe"
    $programs[3][1] = ""
    $programs[3][2] = "infoBoard.exe"

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

    $programs[4][0] = "C:\Program Files (x86)\Citrix\ICA Client\pn.exe"
    $programs[4][1] = ""
    $programs[4][2] = "pn.exe"

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

    $programs[5][0] = "C:\Program Files (x86)\Internet Explorer\iexplorer.exe"
    $programs[5][1] = ""
    $programs[5][2] = "iexplorer.exe"

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

    $programs[6][0] = "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"
    $programs[6][1] = ""
    $programs[6][2] = "EXCEL.EXE"

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

    $programs[7][0] = "C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.EXE"
    $programs[7][1] = ""
    $programs[7][2] = "WINWORD.EXE"

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

    $programs[8][0] = "C:\Program Files (x86)\Microsoft Office\Office12\POWERPNT.EXE"
    $programs[8][1] = ""
    $programs[8][2] = "POWERPNT.EXE"

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

    $programs[9][0] = "C:\Program Files (x86)\Microsoft Office\Office12\OUTLOOK.EXE"
    $programs[9][1] = ""
    $programs[9][2] = "OUTLOOK.EXE"

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

    $programs[10][0] = "C:\Program Files (x86)\Notepad++\notepad++.exe"
    $programs[10][1] = ""
    $programs[10][2] = "notepad++.exe"

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

    $programs[11][0] = "C:\Program Files (x86)\PLSQL Developer\plsqldev.exe"
    $programs[11][1] = ""
    $programs[11][2] = "plsqldev.exe"

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

    $ausgabe =""
    For $i = 0 To 11 Step +1 ;UBound($programs) - 1
    ShellExecute($programs[$i][0], $programs[$i][1])
    If ProcessExists($programs[$i][2]) Then
    Sleep(10000)
    EndIf
    $process = WinGetProcess($programs[$i][2])
    ProcessClose($process)
    Next

    [/autoit]

    so sieht es bisher aus, ich bekomme immer den Fehler
    >Running:(3.3.6.1):C:\Program Files (x86)\AutoIt3\autoit3_x64.exe "D:\Scripte\Startscript.au3"
    D:\Scripte\Startscript.au3 (46) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    $programs[11][0] = "C:\Program Files (x86)\PLSQL Developer\plsqldev.exe"
    ^ ERROR
    ->09:54:07 AutoIT3.exe ended.rc:1
    >Exit code: 1 Time: 1.028

  • Du hast 12 Programme, aber nur 11 mögliche Einträge.

    [autoit]

    Dim $programs[12][3]

    [/autoit]


    immer einmal mehr als du Zeilen hast, weil wegen der 0 ^^

  • Morgen, du solltest aber noch abfangen sollte das Programm nicht existent sein oder eventuell schon am laufen sein..
    Was ich noch einfügen würde werde ein Warten auf das eben gestartete Programm , andernfalls versucht er "sollte dein PC zu langsam sein" ein Programm zu schließen was nicht offen ist

    // nicht getestet also alles unter Vorbehalt :P

    Gruß Marvin