2009-07-28 22 views
10

Estoy tratando de recuperar la información del proceso y estoy consciente de que puedo usar:Recuperación de Información Descripción del Proceso

Process[] myProcesses = Process.GetProcesses(); 

pero ¿cómo puedo recuperar la descripción del proceso? ¿Es a través de alguna llamada API de Win32? Estoy ejecutando Vista y cuando hago clic en la pestaña Procesos en el Administrador de tareas, veo la descripción.

Respuesta

11

Lo que se ve en el Administrador de tareas es en realidad el campo Descripción de la imagen ejecutable.

Puede usar las llamadas WinAPI GetFileVersionInfo() y VerQueryValue() para acceder a varias informaciones de versión, p. Ej. CompanyName o FileDescription.

Para el modo .Net, use el miembro FileDescription de , instanciado con el nombre ejecutable obtenido a través de Process.MainModule.FileName.

Otra forma sería a través de Assembly. Cargue el ensamblaje desde la imagen ejecutable y luego consulte el atributo personalizado AssemblyDescriptionAttribute.

1

Esta es la única forma que pude ver para hacerlo. Intenté Process y Win32_Process, pero no voy.

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(); 
     } 
    } 
} 
10

Solo tienes que ir un poco más abajo en las propiedades. Supongamos que tiene una instancia de bloc de notas en ejecución.

Process[] proc = Process.GetProcessesByName("notepad"); 
Console.WriteLine("Process version- " + proc[0].MainModule.FileVersionInfo.FileVersion); 
Console.WriteLine("Process description- " + proc[0].MainModule.FileVersionInfo.FileDescription); 

¡Ahi lo tienes!

Cuestiones relacionadas