【发布时间】:2011-09-05 20:15:26
【问题描述】:
我正在为任何 CPU 编写应用程序。当我在 64 位 PC 上运行以下命令时,它将不起作用:
System.Diagnostics.Process[] running = System.Diagnostics.Process.GetProcesses();
for (int i = 0; i < running.Length; i++){
try{
Console.WriteLine(running[i].MainModule.FileName);
}
catch (Exception ex){}
}
它只显示阵列中正在运行的 32 位进程,因为它是在 32 位模式下运行的。有解决办法吗?
【问题讨论】:
-
我觉得这很难相信
-
我得到了答案:running[i].MainModule.FileName 不受 64 位进程的支持。这就是我的代码总是抛出异常的原因。所以没有列出 64 位进程。
-
@Brik:在答案中附上,我们可以 +1,你可以接受它(在 24 小时内)!
-
这会教你不要吞下异常! ;-)
-
使用 System.Management,Win32_Process WMI 类。
标签: c# process 32bit-64bit