在 vb.net 中获取文件路径

getting file path in 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 位 OS。

提前致谢

首先,您在循环中声明了 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

查看此处了解更多详情。

How to avoid a Win32 exception when accessing Process.MainModule.FileName in C#?