Delphi 如何获取正在运行的进程列表,包括完整文件路径?
我使用JCL函数Delphi 如何获取正在运行的进程列表,包括完整文件路径?,delphi,process,delphi-xe7,Delphi,Process,Delphi Xe7,我使用JCL函数JclSysInfo.RunningProcessesList获取正在运行的进程列表。但是,许多返回的进程只包含exe文件名,而其他进程则包含整个文件路径,例如: dopus.exe C:\ProgramFiles\Listary\Listary.exe C:\Program Files(x86)\Direct Folders\df.exe Everything.exe 等等 守则: uses ..., JclSysInfo; procedure GetRunningP
JclSysInfo.RunningProcessesList
获取正在运行的进程列表。但是,许多返回的进程只包含exe文件名,而其他进程则包含整个文件路径,例如:
dopus.exeC:\ProgramFiles\Listary\Listary.exe
C:\Program Files(x86)\Direct Folders\df.exe
Everything.exe
等等 守则:
uses
..., JclSysInfo;
procedure GetRunningProcesses;
var
RunningProcesses: TStringList;
begin
RunningProcesses := TStringList.Create;
try
if JclSysInfo.RunningProcessesList(RunningProcesses, True) then
CodeSite.Send('RunningProcesses', RunningProcesses);
finally
RunningProcesses.Free;
end;
end;
那么,如何获得所有进程都具有完整文件路径的运行进程列表?“Everyting”运行提升。做同样的事情。@SertacAkyuz已经试过了,同样的结果。把上面的例子复制到一个测试程序中,自己试一下。我已经试过了。当我在高处跑步时,我得到了“一切”的完整路径。但并非所有进程都有完整的路径。当编译为64位时,有更多完整路径。还不是全部。这是关于访问权的。如果JCL可以打开句柄,则使用
GetModuleFileNameEx
。如果有句柄,可以尝试使用QueryFullProcessImageName
。展望未来。无法打开句柄时,您所能做的不多。QueryFullProcessImageName()
所需的访问权限也比GetModuleFileNameEx()所需的权限少。
。