根据进程ID和用户名取进程

来源:互联网 发布:2015网络流行语排行榜 编辑:程序博客网 时间:2024/05/15 06:23
 
  1.  public static void ResetWinwordProcess()
  2.         {            
  3.             foreach (Process process in Process.GetProcessesByName("WINWORD"))
  4.             {
  5.                 //Ignore   the   current   process     
  6.                 if (GetProcessOwner(process.Id) == "ASPNET")
  7.                 {
  8.                     process.Kill();
  9.                 }
  10.                 
  11.             }
  12.         }
  13.         public static string GetProcessOwner(int prcessId)
  14.         {
  15.             SelectQuery query1 = new SelectQuery("Select   *   from   Win32_Process");
  16.             ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(query1);
  17.             string owner = "";
  18.             try
  19.             {
  20.                 foreach (ManagementObject disk in searcher1.Get())
  21.                 {
  22.                     ManagementBaseObject inPar = null;
  23.                     ManagementBaseObject outPar = null;
  24.                     inPar = disk.GetMethodParameters("GetOwner");
  25.                     outPar = disk.InvokeMethod("GetOwner", inPar, null);
  26.                     if (int.Parse(disk["ProcessId"].ToString()) == prcessId)
  27.                     {
  28.                         owner = outPar["User"].ToString();
  29.                         break;
  30.                     }
  31.                 }
  32.             }
  33.             catch (Exception e)
  34.             {
  35.                 
  36.             }
  37.             return owner;
  38.         }
原创粉丝点击