/// <summary>
/// Using WMI to fetch the command line that started all instances of a process
/// </summary>
/// <param name="processName">Image name, e.g. WebDev.WebServer.exe</param>
/// <returns></returns>
/// adapted from http://stackoverflow.com/questions/504208/how-to-read-command-line-arguments-of-another-process-in-c/504378%23504378
/// original code by http://stackoverflow.com/users/61396/xcud
private static IEnumerable<string> GetCommandLines(string processName)
{
List<string> results = new List<string>();
string wmiQuery = string.Format("select CommandLine from Win32_Process where Name='{0}'", processName);
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery))
{
using (ManagementObjectCollection retObjectCollection = searcher.Get())
{
foreach (ManagementObject retObject in retObjectCollection)
{
results.Add((string)retObject["CommandLine"]);
}
}
}
return results;
}
Technorati tags:
C-Sharp,
WMI,
CodeProject-Tip