我正在尝试打印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时,我得到了这个错误:
答案 0 :(得分:-1)
如果您确保用户具有PROCESS_QUERY_LIMITED_INFORMATION访问权限,则应该足以修复拒绝访问权限的异常。但是,如果您无法控制访问权限,则应尝试使用WMI(Windows Management Instrumentation)来获取进程信息。
您基本上使用查询语言从计算机上运行的进程中获取所需的信息。以下是如何使用它的示例:
Process Information and Notifications using WMI
这篇文章已经很老了,但在较新版本的Windows中,WMI的工作方式仍然相同。您可能仍需要进行修改,但在最好的情况下,代码将按原样运行。