问题描述
我希望能够列出当前正在通过进程打开的所有文件,例如“ EXCEL”,这样我就可以获得文件路径。
我正在使用以下代码,这些代码仅检索打开的第一个文件,并且for每个循环结束:
For Each p As Process In Process.GetProcessesByName(ProcessRuningName)
Try
Using searcher As New ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " & p.Id)
For Each mgmtObj As ManagementObject In searcher.Get()
cl = mgmtObj.Item("CommandLine").ToString().Split("""")
For x = 0 To cl.Count - 1
Dim FilePath As String = cl(x)
If System.IO.Path.GetFileName(FilePath) = FileName Then
processFilesRuning.Add(FileName)
End If
Next
Next
End Using
Catch ex As Win32Exception
'handle error
End Try
Next
因此,如您所见,我正在尝试在每个进程中使用已经检索到的名称“ Excel”进行搜索,但是我只得到一个结果,即第一个打开的Excel文件,而忽略了另一个打开的文件。 / p>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)