Windows窗体应用程序获取进程时拒绝访问.startTime

时间:2017-03-15 07:28:42

标签: c# winforms visual-studio

我正在尝试打印Windows所有进程名称,startTime和EndTime。

private void loadProcessList()
{
    label1.Visible = false;
    listView1.Items.Clear();
    Process[] processList = Process.GetProcesses();
    foreach (Process process in processList)
    {
        ListViewItem item = new ListViewItem(process.ProcessName);
        item.Tag = process;
        DateTime started = process.StartTime;
        string[] row1 = { "Running", started.ToString(), "00:00" };
        listView1.Items.Add(item).SubItems.AddRange(row1);
       }
    }

process.ProcessName工作正常。但是当我尝试获取进程startTime或EndTime时,我得到了这个错误:

ErrorMessage

1 个答案:

答案 0 :(得分:-1)

如果您确保用户具有PROCESS_QUERY_LIMITED_INFORMATION访问权限,则应该足以修复拒绝访问权限的异常。但是,如果您无法控制访问权限,则应尝试使用WMI(Windows Management Instrumentation)来获取进程信息。

您基本上使用查询语言从计算机上运行的进程中获取所需的信息。以下是如何使用它的示例:

Process Information and Notifications using WMI

这篇文章已经很老了,但在较新版本的Windows中,WMI的工作方式仍然相同。您可能仍需要进行修改,但在最好的情况下,代码将按原样运行。