【发布时间】:2012-03-19 02:17:20
【问题描述】:
我开始了一个新项目,列出了所有正在运行的进程的完整路径。当访问某些进程时,程序崩溃并抛出 Win32Exception。描述说列出流程模块时发生错误。最初我认为可能会出现这个问题,因为我在 64 位 平台上运行它,所以我针对 CPU 类型 x86 和 AnyCPU 重新编译了它强>。不过,我遇到了同样的错误。
Process p = Process.GetProcessById(2011);
string s = proc_by_id.MainModule.FileName;
错误发生在第 2 行。空白字段显示发生错误的进程:
有没有办法绕过这个错误信息?
【问题讨论】:
-
如果没有看到代码,很难确定,但我猜这是权限问题。
-
很抱歉。我刚刚添加了相关代码。奇怪的是,它在大约 70% 的进程中运行良好,但在少数进程中却不行。
-
不确定,是否需要 SeDebugPrivilege?
-
在尝试访问特定进程时是否总是发生这种情况,或者无论您尝试获取哪个进程的名称都会发生这种情况?
-
我不确定是否需要 SeDebugPrivilege,但我不这么认为。 @M.Babcock:仅在尝试访问某些特定进程时确实会发生这种情况。
标签: c# windows exception process