C#中处理属性的未处理异常

时间:2017-06-19 22:45:53

标签: c#

我目前正在我的一个项目中做一个自制任务管理器。 在我的程序中实现其他功能之前,一切正常。一旦我在评论

中添加以下行,就会抛出异常
  

抛出异常:System.dll中的“System.UriFormatException”

     

抛出异常:System.dll中的“System.ComponentModel.Win32Exception”

每当我启动使用发布版本生成的程序.exe时,我得到了这个:

  

System.ComponentModel.Win32Exception(0x80004005):访问被拒绝

由于

foreach (Process p in active_process)
{

    ListViewItem process_list = new ListViewItem(p.ProcessName);
    p.Refresh();
    listView1.Items.Add(process_list); //Add Processes Name in Column 1
    process_list.SubItems.Add(p.Id.ToString()); //Add Processes ID in Column 2
    process_list.SubItems.Add(p.WorkingSet64.ToString()); //Add The physical memory used by processes in Column 3
   //process_list.SubItems.Add(p.PriorityClass.ToString());//Add The priority degree of each processes in Column 4
   //process_list.SubItems.Add(p.StartTime.ToString());  //Add The time at which each processes started in Column 5              
    process_list.Tag = p;

}

2 个答案:

答案 0 :(得分:1)

如果没有管理权限,您将无法访问进程列表,因此您应该请求它们。

请参阅How to request administrator permissions when the program starts?

答案 1 :(得分:1)

通过右键单击项目然后添加应用程序清单文件并将requestedExecutionLevel更改为此

,使程序以管理员身份运行
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

这样您的程序就会在开头要求管理员权限