myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Knowledge Base (https://www.mycsharp.de/wbb2/board.php?boardid=68)
-- Artikel (https://www.mycsharp.de/wbb2/board.php?boardid=69)
--- [Tutorial] Prozess/Anwendung aus eigenem Programm starten (https://www.mycsharp.de/wbb2/thread.php?threadid=1929)


Geschrieben von Vellas am 10.06.2004 um 21:25:
  [Tutorial] Prozess/Anwendung aus eigenem Programm starten
Hallo!

Um eine Anwendung aus seinem eigenen Programm heraus zu starten gibt es dafür die Methode start. Hier mal 2 Überladungen:

C#-Code:
string Programmname = "notepad.exe";
System.Diagnostics.Process.Start(Programmname);

C#-Code:
string Programmname = "IExplore.exe";
string Parameter = "www.mycsharp.de";
System.Diagnostics.Process.Start(Programmname, Parameter);

Wobei man eine Webseite auch sehr leich mit dem Standard-Browser wie folgt öffnen kann:

C#-Code:
string Programmname = "www.visual-cplusplus.net"; // Achtung: Schleichwerbung *g*
System.Diagnostics.Process.Start(Programmname);

Eine weitere Möglichkeit wäre z.B. Start Informationen für eine Anendung vor dem Starten auszurufen, wo es beim Aufrufen von Konsolenprogrammen die nur etwas ausführen sollen die schöne Eigenschaft zu verstecken der Konsole gibt, was ein aufblitzen eines Konsolenfensters verhindert. Ein gerne von mir verwendetes Beispiel ist das Folgende:

C#-Code:
// "net send" wird aufgerufen um eine Nachricht zu versenden
System.Diagnostics.ProcessStartInfo sendInfo = new System.Diagnostics.ProcessStartInfo("net.exe","send \"" + empfaenger + "\" \"" + sendText + "\"");
// Fenster des zu startenden Prozesses wird versteckt
sendInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
// Warte mit der Programmausf├╝hrung bis der Prozess beendet ist
System.Diagnostics.Process.Start(sendInfo).WaitForExit();

Dieser Codeschnipsel ruft das Programm net.exe auf, welches eine Nachricht über den Windowsnachrichtendienst an einen Benutzer im Netzwerk versendet. Parameter sind:
send
Empfänger
Nachricht

WaitForExit() wartet mit der Programmausführung bis net.exe seinen Dienst beendet hat. Diese Funktion ist dann sehr praktisch wenn man zusätzlich noch Abfragen will wie das Programm beendet wurde:

C#-Code:
if(sendInfo.ExitCode==0)
  MessageBox.Show("Die Ausf├╝hrung war erfolgreich.");
else
  MessageBox.Show("Die Anwendung wurde mit einem Fehler beendet.");

Wenn man von einer Konsolenanwendung den Console-Output benötigt und nicht möchte das ein Fenster, trotz setzen des WindowStyle auf Hidden, erscheint muss man zusätzlich noch die CreateNoWindow-Eigenschaft auf true setzen:

C#-Code:
ProcessStartInfo psi = new ProcessStartInfo("net.exe","send \"" + empfaenger + "\" \"" + sendText + "\"");
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.CreateNoWindow = true;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;

Code-Hacker


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 25.02.2020 11:00