我正在运行Windows 7 x64机器,当我不编译x64时,我得到一个异常,我的ListView只是填充了前两个非x64进程。
这是我不能访问一个64位进程的MainModule属性来获得它的完整路径。
foreach(Process p in listaProcessi)
{
tempItem = new ListViewItem(p.Id.ToString());
tempItem.SubItems.Add(p.ProcessName);
tempItem.SubItems.Add(p.MainModule.FileName);
processiListView.Items.Add(tempItem);
}
我仍然可以使它为x64编译工作,但假设我只想为x86编译,我如何避免得到异常?
1) 是否有其他方法可以发现这些进程的路径?
2)我可以写一行"你不能从x86应用程序获得x64进程路径",但我仍然不必遇到异常。我该如何预防呢?我是否可以检查一个特定信息的进程,以便我可以替换文本并避免访问MainModule ?
谢谢。
32位进程不能访问64位进程的模块
因此,必须对AnyCpu进行编译,以便在x86和x64环境下完全工作。