でプロセス(およびその説明)を検索するために使用されるManagementObjectSearcher私はプロセスをリストするプログラムに取り組んでいます。特定のプロセスをクリックすると、その説明がわかります。c#PID:
私のアイデア(実際に私はWeb上で見つけたものと同様のものを変更しました)は、SQL文でManagementObjectSearcherを使用することでした( "Select * From Win32_Process WHERE ProcessID =" + a);ここで "a"はプロセスIDを含む文字列変数です。いくつかのプロセスでは、その作業(クロム、電卓など)といくつかのために(svchost、tiltweelmouseなど)はありません。部分的に解決される問題、誰も気にならば、プラットフォームを設定する必要があります
private void Lista_procesa_prikaz_MouseClick(object sender, MouseEventArgs e)
{
string a = Lista_procesa_prikaz.Items[Lista_procesa_prikaz.FocusedItem.Index].SubItems[1].Text;
var searcher = new ManagementObjectSearcher("Select * From Win32_Process WHERE ProcessID="+a);
var proces = searcher.Get();
foreach (var process in proces)
{
var processName = process["Name"];
var processPath = process["ExecutablePath"];
if (processPath != null)
{
var fileVersionInfo = FileVersionInfo.GetVersionInfo(processPath.ToString());
var processDescription = fileVersionInfo.FileDescription;
Description_textbox.Text = processDescription.ToString();
}
}
}
誰かが私は本当に幸せになる、ここで間違え発見することができれば、 すべてのヘルプは
を高く評価しているが
EDITはありがとうプロジェクト、yourProjectName に.GO(私の場合)のx64へ性質、ビルド、プラットフォームターゲット:x64
_guess_私はそれが失敗したprocsがadminとして実行されていると言いたいと思います。 – Mathemats
@Mathematsうーん、そうかもしれないので、どうすればこれらのエラーを避けるために私のプログラムを管理者としてC#から実行するべきですか?また、if(processPath!= null)の後に "else textbox.text = null"それでも時々エラーがポップアップし、未処理例外 –