2013-05-22 12 views
5

W moim Menedżerze zadań Win7 istnieje kolumna, która może być wyświetlana jako "Wiersz poleceń" i pokaże dokładnie, jak proces został uruchomiony i wszystkie parametry zostały wydane. Jeśli mam obiekt Process dla aktualnie uruchomionego procesu, który nie został uruchomiony, w jaki sposób mogę uzyskać te informacje? Miałem nadzieję, że mogę zrobić coś takiego, jak p.StartInfo.Arguments, ale to zawsze wraca jako pusty ciąg. Cała właściwość StartInfo wydaje się pusta, prawdopodobnie dlatego, że nie rozpocząłem procesu, którego szukam. Zgaduję, że będę musiał użyć wywołania WinAPI.Pobierz "Wiersz poleceń" procesu i argumenty z obiektu procesu?

Odpowiedz

8

Cóż można użyć WMI, jest klasa, która może być queryied pobrać listę procesów, a każdy obiekt zawiera również właściwość dla wiersza poleceń, który rozpoczął proces

string query = "SELECT Name, CommandLine, ProcessId, Caption, ExecutablePath " + 
       "FROM Win32_Process"; 
string wmiScope = @"\\your_computer_name\root\cimv2"; 
ManagementObjectSearcher searcher = new ManagementObjectSearcher (wmiScope, query); 
foreach (ManagementObject mo in searcher.Get()) 
{ 
    Console.WriteLine("Caption={0} CommandLine={1}", 
      mo["Caption"], mo["CommandLine"]); 
} 
+1

+1, patrz http : //social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/8efe163b-927e-4895-9983-b8c47b515d7c/ dla dobrego podziału tej metody. – HerrJoebob

+0

Dzięki @HerrJoebob, teraz zorientowałem się, o czym zapomniałem. Kod można skrócić za pomocą 'mo [" CommandLine "]' – Steve

Powiązane problemy