获取vb.net中的文件路径



我使用这段代码来获取当前进程的列表。

For Each Proc As Process In ProcessList
Dim ProcessList As List(Of Process) = Process.GetProcesses.ToList
Dim Name As String = Proc.ProcessName
Dim Path As String = Proc.MainModule.FileName
Dim Icon As System.Drawing.Image = System.Drawing.Icon.ExtractAssociatedIcon(Path).ToBitmap
next

但我在Dim Path As String = Proc.MainModule.FileName)上得到一个错误,我认为这是因为我使用64位操作系统。

Thanks in advance

首先你在循环中声明了ProcessList。我想这是一个粘贴错误。

问题是你不能像那样访问所有的进程。您需要添加一个try catch。

Dim ProcessList As List(Of Process) = Process.GetProcesses.ToList
For Each Proc As Process In ProcessList
Dim Name As String = Proc.ProcessName
Dim v = Environment.Is64BitProcess
Try
Dim Path As String = Proc.MainModule.FileName
Dim Icon As System.Drawing.Image = System.Drawing.Icon.ExtractAssociatedIcon(Path).ToBitmap
Catch ex As Exception
Debug.WriteLine("Can't Access File Name: " + ex.Message + ", Process Name: " + Name)
End Try
Next

详情见此处

如何在c#中访问Process.MainModule.FileName时避免Win32异常?

最新更新