delphi 通过进程名获得文件全路径的函数


本文整理自网络,侵删。

 uses

TlHelp32,psapi;

function GetPathFileofModule(ModuleName:String):String; //枚举进程文件所在路径
var
hProcSnap: THandle;
pProcess: THandle;
pe32: TProcessEntry32;
buf:array[0..MAX_PATH] of char;
hMod:HMODULE;
cbNeeded:DWORD;
begin
hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPALL, 0);
if hProcSnap = INVALID_HANDLE_VALUE then Exit;
pe32.dwSize := SizeOf(ProcessEntry32);
if Process32First(hProcSnap, pe32) = True then
while Process32Next(hProcSnap, pe32) = True do
begin
if uppercase(pe32.szExeFile)=uppercase(ModuleName) then
begin
pProcess:=OpenProcess(PROCESS_QUERY_INFORMATION or
PROCESS_VM_READ,
FALSE,
pe32.th32ProcessID);
if pProcess<>0 then
begin
if EnumProcessModules( pProcess,@hMod,sizeof(hMod),cbNeeded) then
begin
ZeroMemory(@buf,MAX_PATH+1);
GetModuleFileNameEx(pProcess, hMod,buf,MAX_PATH+1);
Result:=strpas(buf);
end;
end;
end;
end;
CloseHandle(hProcSnap);
end;

调用方法:

ShowMessage(GetPathFileofModule('explorer.exe'));

相关阅读 >>

Delphi自带皮肤的使用

Delphi2007-Delphi2010 程序不出现在任务栏的方法

Delphi 从字符串中提取汉字的函数

Delphi设置ie代理的方法

Delphi 很方便调用的log日志方法

Delphi idhttp post json 上传 php 接收

Delphi richedit控件中插入gif动画表情

Delphi中通过tclientsocket获取公网(wan)ip地址

Delphi中获取memo鼠标所在位置的行和列

Delphi kbmmemtable的简单应用(增删改查示例)

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...