获得;“全部”;运行进程VB.net的文件名和路径

获得;“全部”;运行进程VB.net的文件名和路径,vb.net,md5,filenames,Vb.net,Md5,Filenames,它;S VB.NET不是C,我不知道如何将源代码从C交换到VB.NET,谢谢 我想从所有正在运行的进程中获取所有路径。 这是我目前的资料来源: Process.GetProcesses中的每个p As进程的 尝试 ListBox1.Items.Add(p.MainModule.FileName.ToString) 特例 RichTextBox1.Text=ex.消息 结束尝试 下一个 但我无法获取运行进程的所有路径文件夹 如果我检查ex.Message,响应如下 无法枚举进程模块 但是如果我没

它;S VB.NET不是C,我不知道如何将源代码从C交换到VB.NET,谢谢 我想从所有正在运行的进程中获取所有路径。
这是我目前的资料来源:

Process.GetProcesses中的每个p As进程的

尝试
ListBox1.Items.Add(p.MainModule.FileName.ToString)
特例
RichTextBox1.Text=ex.消息
结束尝试
下一个
但我无法获取运行进程的所有路径文件夹

如果我检查
ex.Message
,响应如下

无法枚举进程模块

但是如果我没有使用
ex.Message
,则响应如下:

未处理System.ComponentModel.Win32异常 错误代码=-2147467259 HResult=-2147467259 消息=32位进程无法访问64位进程的模块。 NativeErrorCode=299 来源=系统 堆栈跟踪: 位于System.Diagnostics.NtProcessManager.GetModuleInfo(Int32 processId,Boolean firstModuleOnly) 位于System.Diagnostics.NtProcessManager.GetFirstModuleInfo(Int32 processId) 在System.Diagnostics.Process.get_MainModule()中 在Anti_-Cheat.Form1.Button6中,单击c:\users\adiyatma\documents\visual studio 2012\Projects\Anti-Cheat\Anti-Cheat\Form1.vb:第40行中的(对象发送者,事件参数e) 在System.Windows.Forms.Control.OnClick(EventArgs e)中 在System.Windows.Forms.Button.OnClick(EventArgs e)中 在System.Windows.Forms.Button.OnMouseUp(MouseEventArgs-mevent)上 在System.Windows.Forms.Control.WmMouseUp(Message&m、MouseButtons按钮、Int32单击) 位于System.Windows.Forms.Control.WndProc(Message&m) 位于System.Windows.Forms.ButtonBase.WndProc(Message&m) 在System.Windows.Forms.Button.WndProc(Message&m)中 在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&m)中 在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&m)中 在System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd、Int32 msg、IntPtr wparam、IntPtr lparam) 在System.Windows.Forms.UnsafentiveMethods.DispatchMessageW(MSG&MSG)中 位于System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafentiveMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID、Int32 reason、Int32 pvLoopData) 位于System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32原因,ApplicationContext上下文) 位于System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32原因,ApplicationContext上下文) 位于System.Windows.Forms.Application.Run(ApplicationContext上下文) 在Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()上 在Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()上 在Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(字符串[]命令行) 在17d14f5c-a337-4978-8281-53493378c1071中的Anti_Cheat.My.MyApplication.Main(字符串[]Args)处。vb:第81行 位于System.AppDomain.\u nExecuteAssembly(RuntimeAssembly程序集,字符串[]args) 位于System.AppDomain.ExecuteAssembly(字符串汇编文件、证据汇编安全性、字符串[]args) 在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()上 位于System.Threading.ThreadHelper.ThreadStart\u上下文(对象状态) 位于System.Threading.ExecutionContext.RunInternal(ExecutionContext ExecutionContext、ContextCallback回调、对象状态、布尔值preserveSyncCtx) 在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态,布尔保存SyncCTX) 在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态) 位于System.Threading.ThreadHelper.ThreadStart()处 内部异常:
有人能帮我吗?

看看这个问题

而不是

ListBox1.Items.Add(p.MainModule.FileName.ToString)
试一试

ListBox1.Items.Add(p.Modules(0).FileName.ToString)

编辑: 您是否尝试过直接评估不同流程的属性?可能有某个进程您无法访问,从而导致所述错误

您可以通过创建以下循环,尝试逐个迭代流程:

作为System.Diagnostics.Process中的System.Diagnostics.Process()中的每个p
尝试
Console.WriteLine(p.Modules(0).FileName)
特例
WriteLine(String.Format(“{0}:Error-{1}”,p.ProcessName,ex.Message))
结束尝试
下一个

通过这样做,您应该能够确定不允许访问的进程,并获得两个您应该能够尝试的进程。

Mate问题很明显,您的目标是32位,但在安装了64位系统的计算机上测试您的应用程序,这就是为什么会出现错误的原因。 消息=32位进程无法访问64位进程的模块

要解决此问题,您应该将目标设置为64位,没有解决方案。。。 如果您知道著名的procexp(sysinternals),它有两个独立的应用程序,当系统为32位时,它会启动32位的实例,但当系统为64位时,它会为系统启动另一个独立的进程。。。 所以如果你想解决这个问题,你必须做两个系统兼容性的例子,
希望这是有帮助的

首先,
异常。消息
以相当清晰的文字提示您的代码可能有什么问题。您发布的另一个大代码块是
异常.Stacktrace
,其中包含有关错误来源的详细信息。@M463先生,我现在必须做什么(请尝试下面的答案。错误1标识符可能重复。c:\users\adiyatma\documents\visual studio 2012\Projects\\