【发布时间】:2020-06-15 02:26:09
【问题描述】:
我收到了这个错误:
(我可以向检查员提供更多信息)
System.ComponentModel.Win32Exception: '访问被拒绝'
异常最初是在这个调用栈中产生的:
System.Diagnostics.ProcessManager.OpenProcess(int, int, bool)
System.Diagnostics.Process.GetProcessHandle(int, bool)
System.Diagnostics.Process.GetProcessTimes()
System.Diagnostics.Process.StartTime.get()
Program.cs 上的 ConsoleApp1.Program.Main(string[])
有代码:
(我从一开始就以管理员身份运行这个程序)
正确的答案是如何忽略异常,因为即使有管理员权限也无法读取某些进程而发生错误
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
public class Win32Exception : System.Runtime.InteropServices.ExternalException
{
static void Main(string[] args)
{
var moment = DateTime.Now;
String rh = moment.Hour.ToString();
String rm = moment.Minute.ToString();
String rs = moment.Second.ToString();
Console.Title = moment.ToString("HH:mm:ss");
Process[] localAll = Process.GetProcesses();
/// Process[] procesos;
///procesos = Process.GetProcesses();
///
foreach (Process p in localAll)
{
/// Console.WriteLine(p.ProcessName);
try
{
var tmp = p.StartTime;
String h = p.StartTime.ToString("HH");
String m = p.StartTime.ToString("mm");
String s = p.StartTime.ToString("ss");
int x = Int32.Parse(rh);
int y = Int32.Parse(h);
if (x <= y)
{
Console.WriteLine($"{p.ProcessName} TIME= {p.StartTime.ToString("HH:mm:ss")}");
}
}
catch (Win32Exception)
{
continue;
}
}
Console.ReadKey();
}
}
}
}
【问题讨论】:
-
Win32Exception 没有按我的预期工作
标签: c# visual-studio process system.diagnostics