Probleme mit starten einer Anwendung mit Parametern und Beenden von Anwendungen

  • Hallo,
    ich habe schon gesucht und das Forum durchstöbert, aber ich habe noch nichts gefunden. Sollte ich einen Beitrag übersehen haben verzeiht mir.

    Ich muss ein Script erstellen, das folgendes kann:

    In einem definierten Verzeichnis die neuste Datei suchen und diese dann je nach Typ starten. Bevor dieses jedoch startet müssen alle ggf. vorhandenen anderen bzw. noch offene Programme beendet werden. OK, es können nur folgende Programme offen sein: PowerPointViewer, WordViewer, ExcelViewer. Das heißt, die entsprechenden Prozesse könnten ggf. abgeschossen werden. Aber vielleicht geht das auch eleganter?

    Bisher habe ich dies hier:

    [autoit]


    Dim $oFSO = ObjCreate('Scripting.FileSystemObject'), $Path = "D:\TMP"
    Dim $neueste, $last = '19000101010101', $oFolder = $oFSO.GetFolder($Path)
    For $File In $oFolder.Files
    If $File.DateLastModified > $last Then
    $last = $File.DateLastModified
    $neueste = $File.Name
    EndIf
    Next
    Run('"C:\Programme\Microsoft Office\Office12\PPTVIEW.EXE"' & $neueste)

    [/autoit]

    Problem 1: Der Run Befehl startet mir zwar PowerPointViewer, aber leider nicht mit der Datei. Bedeutet, das PowerPoint dann nach der Datei fragt die geöffnet werden soll. Gebe ich das ganze hart ein, also statt der Variable $neueste direkt die Datei funktioniert es.
    Was mache ich falsch?

    Problem 2: Wie beende ich am elegantesten vor dem Start der PowerPoint-Datei alle anderen möglichen Anwendungen? Also Word, PowerPoint oder Excel? Muss ich diese über eine DOS-Box mit kill Prozess beenden? Oder geht das auch eleganter?


    Grüße
    skywalker

    Einmal editiert, zuletzt von skywalker (9. April 2009 um 16:34)

  • mach mal MsgBox(0,"",$neueste) vor die funktion
    mit msgbox oder _logging einfach mal debuggen :D

  • @K1773R 
    Nein, die Variable enthält schon den richtigen Dateinamen. Nur die Übergabe funktioniert halt nicht.

    peethebee
    Super. Danke, ich glaube damit wird es funktionieren. Ich werde es direkt mal testen.
    Danke für den Tipp mit WinClose / ProcessClose, damit wird der Rest auch noch funktionieren.


    Grüße
    skywalker

  • e@Oscar
    Danke für den Hinweis, das könnte es einfacher machen, da ich dann nicht Abfragen brauche, welche Dateiendung die neueste Datei hat.
    In diesem speziellen Falle für den ich das Script brauche werden nur Word, Excel oder PowerPoint-Dateien verwendet.


    //EDIT:
    Danke, funzt prima! :thumbup:


    Grüße
    skywalker

    Einmal editiert, zuletzt von skywalker (9. April 2009 um 16:33)