"Process.Start" Funktioniert nicht korrekt.

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Lukas.

    "Process.Start" Funktioniert nicht korrekt.

    Hallo

    Ich habe ein Problem mit Process.Start.
    Ich habe eine Batch Datei die sich in einen anderen Verzeichnis befindet, und diese soll mit Process.Start gestartet werden, allerdings wird die Batch Datei zwar kurz ausgeführt, schließt sich aber direkt nach 1 Sek, und nichts passiert.

    Danach habe ich meine Debbugte .exe in das Verzeichnis der Batch Datei verschoben und plötzlich funktioniert das ohne Probleme.

    Woran kann das liegen, was die Batch Datei nur ausgeführt wird, wenn sich meine .exe in selben Verzeichnis befindet? (Ich habe einen Updater, und bei dem funktioniert das mit dem selben Code ohne Probleme ...)

    VB.NET-Quellcode

    1. Process.Start(Me.TextBox1.Text & "\Entpacken.bat")


    oder

    VB.NET-Quellcode

    1. Process.Start("C:\Pfad\Entpacken.bat")
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Pfade verbindet man mit Path.Combine(TextBox1.Text, Entpacken.bat), also muss irgendwas an TextBox1 falsch sein, oder an deiner Bat, wieso brauchst du generell eine Bat, kannst du doch auch mit deiner Applikation entpacken?


    // Oh an WorkingDirectory hab ich gar nicht gedacht, das wirds sein ;) Trotzdem bleibt die Frage oben.
    Die Batch.bat Datei entpackt ein .zip Archiv. (Wie kann ich ein .zip Archiv mit meiner Anwendung selber entpacken?)

    In der Textbox steht C:\Ordner\Ordner\Ordner\Ordner
    Mit Process.Start(Me.Textbox1.Text & "\Entpacken.bat") wird die Batch Datei auch ausgeführt, nur schließt sie sich direkt wieder. (Wenn .exe im Verzeichnis, alles ohne Probleme)

    @Gonger96
    Und wie mache ich das?
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

    VB.NET-Quellcode

    1. Dim p As New Process()
    2. p.StartInfo.Filename = "C:\Pfad\Entpacken.bat"
    3. p.StartInfo.WorkingDirectory = "C:\Pfad\"
    4. p.Start()


    Hier steht wie mans macht ;)

    msdn.microsoft.com/en-us/libra…packaging.zippackage.aspx
    Zum zusammensetzen von Pfaden solltest du außerdem Path.Combine verwenden, speziell wenn du dir nicht über die Eingabe sicher bist (TextBox).
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.