Hallo,
ich habe ein umfangreiches Verbindungsmanagement für die RAS-Api geschrieben.
Nun muss ich leider noch Verbindungen über OpenVPN einbinden.
Ich kann die Verbindung als Prozess starten, allerdings brauche ich ja auch eine Rückmeldung ob die Verbindung aufgebaut wurde.
Dazu müsste ich vom StandardOutput lesen. Leider bekomme ich immer die Exception dass der StandardOutput leer ist X(
Process rs = new Process();
rs.StartInfo.FileName = "c:\\programme\\openvpn\\bin\\openvpn.exe";
rs.StartInfo.Arguments = "--config c:\\programme\\openvpn\\config\\client.ovpn";
rs.StartInfo.UseShellExecute = false;
//rs.StartInfo.CreateNoWindow = true;
rs.Start();
StreamReader sr = rs.StandardOutput(); // hier kommt die Exception
Was kann ich hier tun? Wo schreibt der den StandardOutput hin?
Ein entsprechendes Dos-Fenster mit den Meldungen wird geöffnet!
Das GUI-Verbindungsprogramm von OpenVPN macht nichts anderes als genauso vom StandardOutput zu lesen...Allerdings ist diese direkt in C umgesetzt.
Gruß
comanag06
P.S.: Wusste nicht genau welches Brett hierfür angebracht ist!
Versuch's mal mit dem StandardError.
Mache Programme schreiben (warum auch immer) lieber dort rein 😉
@DaSchroeter: Auf die Idee bin ich auch schon gekommen, aber leider ist da auch nix!
Trotzdem Danke!
Mich wundert vor allem dass das Verbindungstool(in C geschrieben) von OpenVPN auch StandardOutput verwendet. Was ist bei C# da anders???
Sorry, hatte Deinen Code nicht richtig gelesen!
Da gibt es noch mehr in StartInfo zu beachten.
CaptureStandardOutput = true oder so ähnlich.
Original von DaSchroeter
Sorry, hatte Deinen Code nicht richtig gelesen!Da gibt es noch mehr in StartInfo zu beachten.
CaptureStandardOutput = true oder so ähnlich.
Vielleicht RedirectStandardOutput/Error = true?
genau 🙂
Jaaaa, Danke. 👍
Es war so einfach und ich brüte schon 1 Tag darüber 🙁
Nun klappt es auch mit OpenVPN 😁