Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
[Tutorial] Prozess/Anwendung aus eigenem Programm starten
Vellas
myCSharp.de - Member



Dabei seit:
Beiträge: 842

Themenstarter:

[Tutorial] Prozess/Anwendung aus eigenem Programm starten

beantworten | zitieren | melden

Hallo!

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

string Programmname = "notepad.exe";
System.Diagnostics.Process.Start(Programmname);

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:

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:

// "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:

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:

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


Code-Hacker
private Nachricht | Beiträge des Benutzers