Arbeitsverzeichnis externer Anwendung ausgeben

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von timonator.

    Arbeitsverzeichnis externer Anwendung ausgeben

    Hallo,

    ich starte aus meiner Anwendung heraus eine andere EXE, welcher ich auch ein Arbeitsverzeichnis übergebe. Für Debug-Zwecke würde ich gerne das Arbeitsverzeichnis mir ausgeben lassen. Allerdings wird mir bei Exe.StartInfo.WorkingDirectory nichts angezeigt und bei Directory.GetCurrentDirectory wird mir ja nur das AV meiner Anwendung ausgegeben. Gibt es noch eine Möglichkeit?

    Lt.Winters schrieb:

    StartInfo.WorkingDirectory
    sollst Du setzen, damit dieser Pfad der aktuelle Pfad der externen Anwendung ist.
    Wenn das Ding leer ist, ist es der Pfad Deiner eigenen Anwendung.
    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!
    Das habe ich gesetzt, aber er nimmt dennoch das meiner Anwendung. Ich hatte das Problem schoneinmal mit OpenFileDialog, da hast du mir geholfen, in dem ich restoredirectory = True ergänzt habe, aber hier hat diesmal der OFD nichts mit zu tun. Ist übrigens diesmal auch wieder nur unter XP. :/

    VB.NET-Quellcode

    1. Dim exe As New Process
    2. With exe.StartInfo
    3. .FileName = Path
    4. .WorkingDirectory = UserPath 'Arbeitsverzeichnis welches er nehmen soll, aber hier nimmt er das MEINER Anwendung
    5. End With



    EDIT: msdn.microsoft.com/de-de/library/bb978903.aspx

    Hier habe ich Directory.SetCurrentDirectory gefunden. Damit gehts. Bin nur nicht sicher, ob das so ok ist. Wenn das mal eben bitte jemand beurteilen könnte?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Lt.Winters“ ()

    @Lt.Winters Was wird hier ausgegeben?

    VB.NET-Quellcode

    1. MessageBox.Show(UserPath)
    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!
    Der richtige Pfad. Daher denke ich mal, dass ich das so belassen kann. Kenne aber nicht alle Abhängigkeiten bei sowas. Daher bin ich mir nicht sicher, ob ich das nun so belassen kann. Sieht übrigens jetzt so aus:

    VB.NET-Quellcode

    1. Dim exe As New Process
    2. With exe.StartInfo
    3. .FileName = Path
    4. .WorkingDirectory = UserPath
    5. End With
    6. Directory.SetCurrentDirectory(UserPath)

    Lt.Winters schrieb:

    VB.NET-Quellcode

    1. Directory.SetCurrentDirectory(UserPath)
    ist eine Anweisung, die den aktuellen Pfad für die eigene Anwendung setzt.

    VB.NET-Quellcode

    1. exe.StartInfo.WorkingDirectory = UserPath
    setzt den aktuellen Pfad für die externe Anwendung.
    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!

    Lt.Winters schrieb:

    geht es nämlich nicht.
    Dann ist iwo anders ein Fehler. :/
    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!