Mam projekt, w którym mam wiele wystąpień uruchomionej aplikacji, z których każda została uruchomiona z różnymi argumentami wiersza polecenia. Chciałbym mieć sposób na kliknięcie przycisku z jednej z tych instancji, które następnie zamyka wszystkie wystąpienia i uruchamia je ponownie z tymi samymi argumentami wiersza poleceń.Czy można uzyskać argumenty wiersza poleceń innych procesów z .NET/C#?
Mogę uzyskać same procesy z łatwością przez Process.GetProcessesByName()
, ale ilekroć to zrobię, właściwość StartInfo.Arguments
jest zawsze pustym ciągiem. Wygląda na to, że ta właściwość jest ważna tylko przed rozpoczęciem procesu.
This question ma pewne sugestie, ale wszystkie są w kodzie natywnym i chciałbym to zrobić bezpośrednio z .NET. Jakieś sugestie?
Czy masz kontrolę nad aplikacją, którą próbujesz ponownie uruchomić? –
Tak, mam pełną kontrolę nad kodem aplikacji, którą próbuję ponownie uruchomić - zawsze będzie to kolejne wystąpienie tej samej aplikacji, z której korzystam. Jest to aplikacja WPF, jeśli to robi różnicę, ale nie sądzę, że powinna. –
Zgodnie z artykułem MSDN na temat StartInfo (http://msdn.microsoft.com/en-us/library/system.diagnostics.process.startinfo.aspx), obiekt StartInfo zawiera tylko informacje, jeśli proces został uruchomiony przy użyciu procesu. Początek. Wskazuje również, że funkcja StartInfo będzie pusta podczas korzystania z funkcji GetProcesses *. – Corin