C# 任意の起動時のプロセスの引数の取得
が、できてしまうので、プロセスの引数には、「パスワード」など大事な文字列を入れないようにしましょう!
他にどのような値が取得できるかは、以下の MSDN 内に詳しくあります。
Windows Management Instrumentation > WMI Reference > WMI Classes > Win32 Classes > Win32_Process
void GetArgs() { ManagementScope scope = new ManagementScope(@"\\.\ROOT\CIMV2"); scope.Connect(); ObjectQuery query = new ObjectQuery(@"SELECT * FROM Win32_Process"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); ManagementObjectCollection arrObj = searcher.Get(); foreach (ManagementObject obj in arrObj) { string pid = obj["ProcessId"].ToString(); string name = obj["Name"].ToString(); string args = ""; if (obj["CommandLine"] != null) args = obj["CommandLine"].ToString(); //!<引数の取得 System.Console.WriteLine("[" + pid + "]"+ name + " " + args); } }