Kontrolle über den Prozess erhalten, der von einem URI in C# gestartet wurde
-
28-10-2019 - |
Frage
Ich erstelle ein Programm, das eine konfigurierte Anwendung mit den bestandenen Paramtern über eine URL mit Shell Execute eröffnet. Ich habe dies mit Folgendem erreicht:
ProcessStartInfo procinfo = new ProcessStartInfo(URI);
procinfo.UseShellExecute = true;
Process App = Process.Start(procinfo);
Ich möchte diesen Prozess später nach einigen Minuten durch dieses Projekt töten, das ich von app.kill () machen könnte, aber das Problem ist, dass der Prozess.Start () immer null zurückgibt, wenn ich den URI übergehe. Wie könnte ich diesen Prozess erreichen?
Lösung
Wenn die Adresse der ausführbaren Datei eine URL ist, wird der Prozess nicht gestartet und Null wird zurückgegeben. http://msdn.microsoft.com/en-us/library/53ezey2s.aspx
Selbst wenn Sie einen Browser angeben, kann der Prozess ein einfacher Handler sein, der eine Nachricht an einen vorhandenen Prozess sendet (oder einen anderen Prozess öffnet) und sich sofort schließt.
Sie können jedoch den gewünschten Browser explizit starten, wenn Sie wissen, wie der Prozess funktioniert.
Process p = Process.Start(browserExePath, url);