不是程序自身的绝对路径。有没有高人指点一下?unction GetProcessFullFileName(pID:Integer):String;
var s:String;
hProcess:THandle;
begin
Result:='';
SetLength(s,256);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS or PROCESS_QUERY_INFORMATION ,FALSE,pID);
if(hProcess>0) then
begin
if(GetModuleFileNameEx(hProcess,0,PChar(s),255)>0) then
begin
Result:=s;
end;
CloseHandle(hProcess);
end;
end;function GetAppName1(hwindow: HWND): string;
var
h : HMODULE;
begin
SetLength(Result, 100);
h:=GetClassLong(hwindow,GCL_HMODULE);
GetModuleFileName(h,PChar(Result),length(Result));
end;用这个只能得到程序的文件名,还不能达到要求。望高手能指点一二。
var s:String;
hProcess:THandle;
begin
Result:='';
SetLength(s,256);
hProcess:=OpenProcess(PROCESS_ALL_ACCESS or PROCESS_QUERY_INFORMATION ,FALSE,pID);
if(hProcess>0) then
begin
if(GetModuleFileNameEx(hProcess,0,PChar(s),255)>0) then
begin
Result:=s;
end;
CloseHandle(hProcess);
end;
end;function GetAppName1(hwindow: HWND): string;
var
h : HMODULE;
begin
SetLength(Result, 100);
h:=GetClassLong(hwindow,GCL_HMODULE);
GetModuleFileName(h,PChar(Result),length(Result));
end;用这个只能得到程序的文件名,还不能达到要求。望高手能指点一二。
var hProcessID, hProcess: THandle;
hMod: HMODULE;
Size: DWORD;
Buf: array[0..255] of char;
begin
GetWindowThreadProcessId(hWnd, @hProcessID);
hProcess:= OpenProcess(PROCESS_ALL_ACCESS, False, hProcessID);
EnumProcessModules(hProcess, @hMod, SizeOf(hMod), Size);
GetModuleFileNameEx(hProcess, hMod, Buf, SizeOf(Buf));
CloseHandle(hProcess);
Result:= StrPas(Buf);
end;