Process[] myProcess = null;
foreach (Process localAll in Process.GetProcesses())
{
try
{
if (localAll.ProcessName.Contains(processName))
{
myProcess = Process.GetProcessesByName(localAll.ProcessName);
}
}
catch { }
}
Process[] processList;
if (myProcess.Any())
{
if (moduleName != null)
{
processList = myProcess
.Where(process => process.Modules.OfType<ProcessModule>()
.Any(module => module.ModuleName.Contains(moduleName))).ToArray();
}
else
{
processList = myProcess;
}
if (!processList.Any())
{
return;
}
因为我还是新手,我可能还有一些错误要修复,但我的主要问题是:&#34; 32位进程无法访问64位进程的模块&#34;在运行测试应用程序并输入所需信息时。 问候 ==编辑
抛出异常:发生了System.ComponentModel.Win32Exception 的HResult = 0x80004005的 消息= 32位进程无法访问64位进程的模块。 来源=系统 堆栈跟踪: 在System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId,&gt; Boolean firstModuleOnly) 在System.Diagnostics.ProcessManager.GetModuleInfos(Int32 processId) 在System.Diagnostics.Process.get_Modules() 在ModuleTester.ProcessBox2。&lt;&gt; c__DisplayClass23_0。&lt; .ctor&gt; b__0(进程&gt;进程)在C:\ Users \ Ludwig \ Desktop \ ModuleTester - Copy \ ModuleTester \ ProcessBox2.cs:第63行 在System.Linq.Enumerable.WhereArrayIterator
1.MoveNext() at System.Linq.Buffer
1..ctor(IEnumerable1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable
1来源) 在ModuleTester.ProcessBox2..ctor(String processName,String moduleName,&gt; String testAob,UInt32 PiDd)中的C:\ Users \ Ludwig \ Desktop \ ModuleTester - &gt; Copy \ ModuleTester \ ProcessBox2.cs:第62行 at ModuleTester.Program.MProces(String process,String aob,String&gt; module,UInt32 ppid,String t_aob)在C:\ Users \ Ludwig \ Desktop \ ModuleTester - &gt; Copy \ ModuleTester \ Program.cs:第35行 at ModuleTester.Program.Main(String [] args)在C:\ Users \ Ludwig \ Desktop&gt; \ ModuleTester - Copy \ ModuleTester \ Program.cs:第27行