11

Nameがparam1で始まり、param2で終わる結果を見つけたいのですが、コードが機能しません

string wmiQuery = string.Format("SELECT CommandLine FROM Win32_Process WHERE Name LIKE '{0}%' AND Name LIKE '%{1}'", param1, param2);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(wmiQuery);
ManagementObjectCollection retObjectCollection = searcher.Get();

どうしたの?

比較のために

string wmiQuery = string.Format("SELECT CommandLine FROM Win32_Process WHERE Name LIKE '{0}%'", param1);

うまくいく

4

2 に答える 2

16

これを試して:

string wmiQuery = string.Format("SELECT CommandLine FROM Win32_Process WHERE Name LIKE '{0}%{1}'", param1, param2);

テスト情報の追加:

string wmiQuery = string.Format ( "SELECT Name, ProcessID FROM Win32_Process WHERE Name LIKE '{0}%{1}'", "wpf", ".exe" );

Console.WriteLine ( "Query: {0}", wmiQuery );

ManagementObjectSearcher searcher = new ManagementObjectSearcher ( wmiQuery );
ManagementObjectCollection retObjectCollection = searcher.Get ( );

foreach (ManagementObject retObject in retObjectCollection)
{
    Console.WriteLine ( "[{0}]\tName: {1}", retObject[ "ProcessID" ], retObject["Name"] );
}

出力:

クエリ:SELECT Name、ProcessID FROM Win32_Process WHERE Name LIKE'wpf%.exe'
[896] Name:WPFFontCache_v0400.exe

于 2011-06-07T11:30:59.557 に答える
9

WMIクエリを作成するには、さまざまなプログラミング言語VBS、VB.NET、C#でWMIコードクリエーターと呼ばれるMicrosoftの無料ツールを使用します。

http://www.microsoft.com/downloads/en/details.aspx?familyid=2cc30a64-ea15-4661-8da4-55bbc145c30e&displaylang=enからダウンロードします。

于 2011-06-07T11:40:46.573 に答える