0
我正在編寫一個程序,該程序應列出我的過程,當我點擊某個過程時,它應該給我它的描述。我的想法(其實我修改了類似的東西,我發現在網上)是使用ManagementObjectSearcher與SQL語句(「選擇*從Win32_Process WHERE過程ID =」+ a);其中「a」是包含進程ID的字符串變量。對於某些進程的工作(例如chrome,計算器)以及某些進程沒有(svchost,tiltweelmouse等)。c#ManagementObjectSearcher用於查找具有PID的過程(及其描述)
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();
}
}
}
,如果有人能發現錯在這裏,我將非常高興, 任何幫助表示讚賞
謝謝
編輯:部分解決問題,如果有人甚至關心,平臺需要進行設置到x64(對我來說)。去項目,爲yourprojectname性能,構建,平臺目標:x64
作爲_guess_我會說那些失敗的特效是以管理員身份運行的。 – Mathemats
@Mathemats嗯,可能,所以我應該怎麼從c#運行我的程序作爲管理員以避免這些錯誤?另外,我嘗試在「if(processPath!= null)」之後添加「else textbox.text = null」,並且即使有時也會彈出錯誤,未處理的異常 –