Befehl in cmd ausführen

  • VB.NET

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

    Befehl in cmd ausführen

    Hallo,

    ich habe mir ein Programm programmiert, dass Befehle in der Komandozeile ausführen soll. Leider funktioniert das nicht, ich bekomme bei Prozess.start() den Fehler, dass das System die Datei nicht finden kann.

    VB.NET-Quellcode

    1. Dim Prozess As New Process Prozess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden Prozess.StartInfo.FileName = "cmd" & "/c " & strgData Prozess.Start()



    Was muss ich tun , damit der Fehler nicht mehr auftritt ?
    1.) Bitte VB Tags benutzen - was ist damit gemeint?
    2.) Du schreibst die Datei ja in einem Wort "cmd/c" -kann ja nicht funktionieren. Argumente müssen mit einem Leerzeichen vom Dateinamen getrennt werden.
    3.) Häng noch nen .exe an cmd und ruf dem Windir-Pfad über Envoironment.Getfolderpath(...) ab (weiß grad aus dem Kopf nicht, ob das zwingend notwendig ist aber schaden tut es auf jeden Fall nicht).
    Und nutze das Member Arguments

    VB.NET-Quellcode

    1. Dim Prozess As New Process
    2. Prozess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
    3. Prozess.StartInfo.FileName = "cmd.exe"
    4. Prozess.StartInfo.Arguments = "/c " & strgData
    5. Prozess.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).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo

    danke für den Tipp. Jetzt kommt aber bei meinem Server ein Problem: Wenn ich jetzt einen Befehl an den Client komme, dann bekomme ich die Meldung , dass der Zielcomputer die Verbindung verweigerte. Die Firewalls habe ich auch testweise schon aus gehabt, aber leider funktioniert das immer noch nicht.

    VB.NET-Quellcode

    1. Dim Socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
    2. Socket.Connect("IP Adresse", 900)
    3. Socket.Send(System.Text.Encoding.UTF8.GetBytes(TextBox1.Text))
    4. Me.Close()
    5. End If
    Mach es vielleicht richtig mit TcpClient und NetworkStream.
    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!