是否可以使用Process.GetProcesses()
方法检索正在运行的文件的文件目录?
问问题
1412 次
2 回答
0
你可以这样做:
Dim processes As System.Diagnostics.Process()
processes = System.Diagnostics.Process.GetProcesses
Dim process As System.Diagnostics.Process
For Each process In processes
listProcess.Items.Add(process.ProcessName.ToString + " " + process.Id.ToString + " " + process.MainModule.FileName.ToString)
Next
但是,可能存在“拒绝访问”类型错误,因为其中许多进程将在受保护的目录中运行,例如C:\Windows\
于 2013-10-17T02:07:12.287 回答
0
您可以获得正在运行的每个进程的命令行,并且您正在寻找的路径有可能是参数的一部分,然后您可以将其从结果中解析出来。
例如,notepad.exe 将显示其打开文件的完整路径作为命令行参数,因此它可能如下所示:
"C:\WINDOWS\system32\NOTEPAD.EXE" C:\Users\J.Scott\Desktop\testfile.php
编码:
Dim cLineSearch As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_Process")
For Each cLine As ManagementObject In cLineSearch.[Get]()
Try
Debug.Print(cLine("CommandLine").ToString)
Catch ex As Exception
' Usually "Object not set to instance of an object" error
'Debug.Print(ex.Message)
End Try
Next
于 2016-08-15T19:01:43.943 回答