C# 访问process.MainModule.FileName时出现访问被拒绝异常
我列出了系统中所有正在运行的进程及其完整路径。我的应用程序在XP中运行良好,但在vista中,它在访问MainModule.FileName时出现拒绝访问异常。(我想是因为UAC)C# 访问process.MainModule.FileName时出现访问被拒绝异常,c#,C#,我列出了系统中所有正在运行的进程及其完整路径。我的应用程序在XP中运行良好,但在vista中,它在访问MainModule.FileName时出现拒绝访问异常。(我想是因为UAC) 我没有找到解决UAC问题的办法。有什么线索吗?可能根本不是UAC。您的流程可能是x32,而被查询的流程可能是x64,反之亦然。当发生Win32Exception时,process.MainModule似乎会阻塞,“ReadProcessMemory或WriteProcessMemory请求仅完成了一部分” 是吗?要添
我没有找到解决UAC问题的办法。有什么线索吗?可能根本不是UAC。您的流程可能是x32,而被查询的流程可能是x64,反之亦然。当发生Win32Exception时,process.MainModule似乎会阻塞,“ReadProcessMemory或WriteProcessMemory请求仅完成了一部分”
是吗?要添加到DJA的答案中,Process.main模块正在使用EnumProcessModules API: 如果目标进程中的模块列表已损坏或尚未初始化,或者由于加载或卸载DLL而导致模块列表在函数调用期间发生更改,EnumProcessModule可能会失败或返回错误信息
因此,您可能试图在目标进程不稳定时使用此函数,得到错误的部分拷贝(299)。23天,没有应答!!!奇怪!!!可能的重复看看日期,我面临的问题可能的重复我今天也有同样的问题。似乎将目标平台设置为任何已为我解决的问题。当目标为x86(使用一些无法在64位模式下工作的32位DLL)且应用程序在x64上运行时,是否有可能克服此问题?
foreach (Process process in Process.GetProcesses())
{
sProcess = process.ProcessName;
sFullpath = process.MainModule.FileName;
..
..
..
}