簡體   English   中英

檢索過程描述信息

[英]Retrieving Process Description Information

我正在嘗試檢索進程信息,我知道我可以使用:

Process[] myProcesses = Process.GetProcesses();

但是如何檢索流程描述? 是通過一些Win32 API調用嗎? 我正在運行Vista,當我在任務管理器中的進程選項卡下單擊時,我看到了描述。

您在任務管理器中看到的實際上是可執行映像的“描述”字段。

您可以使用GetFileVersionInfo()VerQueryValue() WinAPI調用來訪問各種版本信息,例如CompanyName或FileDescription。

對於.Net方式,使用FileVersionInfoFileDescription成員,使用通過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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM