在 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#?
我正在使用这段代码来获取当前进程的列表。
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#?