[英]Retrieving Process Description Information
我正在嘗試檢索進程信息,我知道我可以使用:
Process[] myProcesses = Process.GetProcesses();
但是如何檢索流程描述? 是通過一些Win32 API調用嗎? 我正在運行Vista,當我在任務管理器中的進程選項卡下單擊時,我看到了描述。
您在任務管理器中看到的實際上是可執行映像的“描述”字段。
您可以使用GetFileVersionInfo()
和VerQueryValue()
WinAPI調用來訪問各種版本信息,例如CompanyName或FileDescription。
對於.Net方式,使用FileVersionInfo
的FileDescription
成員,使用通過Process.MainModule.FileName
的可執行文件名實例化。
另一種方式是通過Assembly
。 從可執行映像加載程序集,然后查詢AssemblyDescriptionAttribute
自定義屬性。
你只需要進一步了解屬性。 假設你有一個記事本運行實例。
Process[] proc = Process.GetProcessesByName("notepad");
Console.WriteLine("Process version- " + proc[0].MainModule.FileVersionInfo.FileVersion);
Console.WriteLine("Process description- " + proc[0].MainModule.FileVersionInfo.FileDescription);
你去!
這是我能看到的唯一方法。 我試過Process和Win32_Process,但沒有去。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Diagnostics;
namespace Management
{
class Program
{
static void Main(string[] args)
{
var ps = Process.GetProcesses();
foreach (var p in ps)
{
try
{
var desc = FileVersionInfo.GetVersionInfo(p.MainModule.FileName);
Console.WriteLine(desc.FileDescription);
}
catch
{
Console.WriteLine("Access Denied");
}
}
Console.ReadLine();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.