Shell working directory?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Shell working directory?

    Hallo,
    ich habe ein problem:
    Ich möchte eine .exe mit Shell starten(Mit Argumenten & working directory)

    Das mit den Argumenten habe ich schon hinbekommen:
    Shell("C:\Beispiel.exe ffdjreurebf54z45gh")
    ' ffdjreurebf54z45gh= Argumente


    Wie kann ich jetzt noch die working directory festlegen?


    Hoffe das mir jemand helfen kann.


    Mfg.
    Malizero
    @Malizero:: Nicht Shell, sondern Process, und nicht in der Root.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim pr As New Process
    3. pr.StartInfo.FileName = "c:\Temp\Beispiel,exe"
    4. pr.StartInfo.Arguments = "ffdjreurebf54z45gh"
    5. pr.StartInfo.WorkingDirectory = "c:\Temp"
    6. pr.Start()
    7. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habe ich bereits versucht, nur wenn ich diese methode nehme MUSS ich einen Pfad angeben aber ich will das mein Programm in dem Ordner arbeitet in dem er sich befindet

    Beispiel:
    In Ordner "X" ist Ordner "C"
    Im Ordner "C" ist die "Beispiel.exe"
    Mein Programm befindet sich in Ordner "X"
    Nun, wenn ich in den Code schreibe:

    Dim pr As New Process
    pr.StartInfo.FileName = "C\Beispiel.exe"
    pr.StartInfo.Arguments = "ffdjreurebf54z45gh"
    pr.StartInfo.WorkingDirectory = "C\"
    pr.Start()

    Wird der dateipfad nicht gefunden? Wieso geht das mit Shell & damit nicht?
    @Malizero

    Probier es mal so:

    VB.NET-Quellcode

    1. Dim pr As New Process
    2. pr.StartInfo.FileName = "C:\Temp\Beispiel,exe"
    3. pr.StartInfo.Arguments = "ffdjreurebf54z45gh"
    4. 'als WorkingDirectory wird der Ordner, in der die EXE ist, angegeben
    5. pr.StartInfo.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath)
    6. pr.Start()

    Nicht vergessen System.IO importieren :)

    Gruß
    Switcherlapp97
    RubiksCubeSolver


    Jetzt im Showroom

    Malizero schrieb:

    VB.NET-Quellcode

    1. pr.StartInfo.FileName = "C\Beispiel.exe"
    Probier mal mit Doppelpunkt:
    "C:\Beispiel.exe"
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Malizero schrieb:

    VB.NET-Quellcode

    1. Dim _1 as new IO.FileInfo("C\Foto.jpg")
    2. _1.copyTo("B\Foto.jpg", True)
    Machst Du

    VB.NET-Quellcode

    1. Dim _1 as new IO.FileInfo("C:\Foto.jpg") ' Da fehlt bei Dir ein Doppelpunkt
    2. _1.copyTo("B:\Foto.jpg", True) ' Da fehlt bei Dir noch ein Doppelpunkt
    Denn Doppelpunkt ":" findest Du zwischen Komma und Minus, musst aber gleichzeitig auf die Shift (Hochstell)-Taste drücken.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Malizero schrieb:

    VB.NET-Quellcode

    1. Dim _1 as new IO.FileInfo("C\Foto.jpg")
    2. _1.copyTo("B\Foto.jpg", True)
    Machst Du

    VB.NET-Quellcode

    1. Dim _1 as new IO.FileInfo("C:\Foto.jpg") ' Da fehlt bei Dir ein Doppelpunkt
    2. _1.copyTo("B:\Foto.jpg", True) ' Da fehlt bei Dir noch ein Doppelpunkt
    Denn Doppelpunkt ":" findest Du zwischen Komma und Minus, musst aber gleichzeitig auf die Shift (Hochstell)-Taste drücken.
    Das mit dem Kopieren geht auch so..

    Mit dem Doppelpunkt gehts auch nicht ;/

    Switcherlapp97 schrieb:

    Path.GetDirectoryName(Application.ExecutablePath)

    Switcherlapp97 schrieb:

    @Malizero

    Probier es mal so:

    VB.NET-Quellcode

    1. Dim pr As New Process
    2. pr.StartInfo.FileName = "C:\Temp\Beispiel,exe"
    3. pr.StartInfo.Arguments = "ffdjreurebf54z45gh"
    4. 'als WorkingDirectory wird der Ordner, in der die EXE ist, angegeben
    5. pr.StartInfo.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath)
    6. pr.Start()

    Nicht vergessen System.IO importieren :)

    Gruß
    Switcherlapp97
    Leider auch nicht ;(

    Malizero schrieb:

    Mit dem Doppelpunkt gehts auch nicht ;/
    Schreib doch bitte nicht den ganzen Post ab, schreib lieber, was genau nicht funktioniert. And am besten schreibst Du, wie sich das Problem im Explorer verhält.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!