Wie kann ich eine Anwendung mit C # starten?
Anforderungen: Muss unter Windows XP und Windows Vista funktionieren .
Ich habe ein Beispiel aus dem DinnerNow.net-Sampler gesehen, das nur unter Windows Vista funktioniert.
Wie kann ich eine Anwendung mit C # starten?
Anforderungen: Muss unter Windows XP und Windows Vista funktionieren .
Ich habe ein Beispiel aus dem DinnerNow.net-Sampler gesehen, das nur unter Windows Vista funktioniert.
Antworten:
Verwenden Sie die System.Diagnostics.Process.Start()
Methode.
Lesen Sie diesen Artikel über die Verwendung.
Process.Start("notepad", "readme.txt");
string winpath = Environment.GetEnvironmentVariable("windir");
string path = System.IO.Path.GetDirectoryName(
System.Windows.Forms.Application.ExecutablePath);
Process.Start(winpath + @"\Microsoft.NET\Framework\v1.0.3705\Installutil.exe",
path + "\\MyService.exe");
Hier ist ein Ausschnitt hilfreichen Codes:
using System.Diagnostics;
// Prepare the process to run
ProcessStartInfo start = new ProcessStartInfo();
// Enter in the command line arguments, everything you would enter after the executable name itself
start.Arguments = arguments;
// Enter the executable to run, including the complete path
start.FileName = ExeName;
// Do you want to show a console window?
start.WindowStyle = ProcessWindowStyle.Hidden;
start.CreateNoWindow = true;
int exitCode;
// Run the external process & wait for it to finish
using (Process proc = Process.Start(start))
{
proc.WaitForExit();
// Retrieve the app's exit code
exitCode = proc.ExitCode;
}
Mit diesen Objekten können Sie noch viel mehr tun. Lesen Sie dazu die Dokumentation: ProcessStartInfo , Process .
PathTo*.exe
aber ich würde nicht erwarten, dass es funktioniert. (a) Was ist, wenn es mehrere Übereinstimmungen gibt? (b) Ich würde hoffen, dass der Code von Microsoft dies nicht zulässt, da dies eine schwache Sicherheit darstellt.
System.Diagnostics.Process.Start("PathToExe.exe");
Wenn Sie Probleme mit der Verwendung von System.Diagnostics haben, wie ich es getan habe, verwenden Sie den folgenden einfachen Code, der ohne ihn funktioniert:
Process notePad = new Process();
notePad.StartInfo.FileName = "notepad.exe";
notePad.StartInfo.Arguments = "mytextfile.txt";
notePad.Start();
Process
ist in System.Diagnostics.
Außerdem sollten Sie die Umgebungsvariablen nach Möglichkeit für Ihre Pfade verwenden: http://en.wikipedia.org/wiki/Environment_variable#Default_Values_on_Microsoft_Windows
Z.B
Es gibt viele weitere, die den Link für eine längere Liste überprüfen.
Legen Sie einfach Ihre file.exe in den Ordner \ bin \ Debug und verwenden Sie:
Process.Start("File.exe");
Versuche dies:
Process.Start("Location Of File.exe");
(Stellen Sie sicher, dass Sie die System.Diagnostics-Bibliothek verwenden.)