Process.Start & Textbox

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von biber04.

    Process.Start & Textbox

    Guten Morgen Leute,

    ich habe ein Problem mit einem Button welcher einen Prozess starten soll.

    Folgendes Funktioniert:

    Private Sub Btn_Reihe2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Reihe2.Click
    Process.Start("C:\Windows\System32\mstsc.exe ", TextBox_Temp_Verzeichnis.Text + "Vorlage.rdp")
    End Sub

    Wenn ich aber das ganze so schreibe geht es nicht:

    Private Sub()
    Textbox.Text = "C:\Windows\System32\mstsc.exe" + ", "+ TextBox_Temp_Verzeichnis.Text + "Vorlage.rdp"
    End Sub

    Private Sub Btn_Reihe2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Reihe2.Click
    Process.Start(Textbox.Text)
    End Sub

    Wo liegt hier mein Denkfehler? Ich stehe absolut auf dem Schlauch.

    Danke für eure Hilfe :)

    Verschoben. ~Trade
    alles ist irgendwie möglich

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    Willkommen im Forum,

    Strings werden in VB.NET mit & verknüpft, nicht +. Afaik ist das bei strikten Einstellungen auch nicht mehr möglich. Schalte daher mal Option Strict On!
    Jdf. ist das Dein Pfad in der TextBox irgendwie soetwas: C:\Windows\System32\mstsc.exe, temp/Vorlage.rdp
    Das ist natürlich nicht gültig mit dem Komma. Kommas brauchst Du ja nur zur Trennung von Argumenten bei Methoden. Was Du bei Process.Start angegeben hast ist, den Pfad und gleich dazu Argumente zu übergeben: msdn.microsoft.com/de-de/library/h6ak8zt5(v=vs.110).aspx
    Ich weiß nicht, was Du machen willst, aber ich schätze Du willst schon der .exe die Argumente mitgeben, oder? Dann wäre das 1. richtig, aber das 2. nicht, weil das nur ein Pfad als Argument wäre, der nicht korrekt ist.

    Zudem ist "Es geht nicht" zu dürftig. Bitte immer die Fehler genau angeben.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Fragen per PN, denn dafür ist das Forum da :!:
    @biber04 Willkommen im Forum. :thumbup:
    Besser ist es, eine Process-Instanz zu erstellen und deren StartInfo-Member zu befüllen, da sind die Argumente fein säuberlich getrennt und es besteht keine Gefahr einer falschen Zuordnung:

    VB.NET-Quellcode

    1. Dim pr = New Process
    2. pr.StartInfo.FileName = "C:\Windows\System32\mstsc.exe"
    3. pr.StartInfo.Arguments = TextBox_Temp_Verzeichnis.Text & "Vorlage.rdp"
    4. pr.Start()

    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    @biber04 Das nächste Mal richtig posten, du wurdest beim letzten Mal deutlich darauf hingewiesen, dass deine Threads unter "Tutorials" nichts zu suchen haben!
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum