var
Buffer: array[0..MAX_PATH] of WideChar;
name: string;
handle: THandle;
begin
handle := OpenProcess(PROCESS_ALL_ACCESS, False, PID号);
SetString(name, Buffer, GetModuleFileName(handle, Buffer, Length(Buffer)));
ShowMessage(name);
end;显示出来怎么是乱码?
Buffer: array[0..MAX_PATH] of WideChar;
name: string;
handle: THandle;
begin
handle := OpenProcess(PROCESS_ALL_ACCESS, False, PID号);
SetString(name, Buffer, GetModuleFileName(handle, Buffer, Length(Buffer)));
ShowMessage(name);
end;显示出来怎么是乱码?
Buffer: array[0..MAX_PATH] of Char;
handle: THandle;
begin
FillChar(buffer, sizeof(buffer), #0);
// 这里如果不是必须,没必要 ALL_ACCESS,在某些情况下,ALL_ACCESS 可能被拒绝
handle := OpenProcess(PROCESS_ALL_ACCESS, False, PID号);
if (INVALID_HANDLE_VALUE <> handle)
begin
GetModuleFileName(handle, Buffer, MAX_PATH);
CloseHandle(handle);
end;
ShowMessage(buffer);
end;
var
Buffer: array[0..MAX_PATH] of WideChar;
name: string;
hMod: HMODULE;
cbNeeded, hProcess: DWORD;
begin
EnumProcessModules(进程句柄, @hMod, sizeof(hMod), cbNeeded);
SetString(name, Buffer, GetModuleFileNameEx(进程句柄, hMod, Buffer, Length(Buffer)));
ShowMessage(Buffer);
end;知道进程PID,取进程句柄就不难了。非常感谢Adayuer的热心,今天一连答了我好几个问题,再次感谢。
var
Buffer: array[0..MAX_PATH] of Char;
handle: THandle;
begin
FillChar(buffer, sizeof(buffer), #0);
// 这里如果不是必须,没必要 ALL_ACCESS,在某些情况下,ALL_ACCESS 可能被拒绝
handle := OpenProcess(PROCESS_ALL_ACCESS, False, 1412);
if (INVALID_HANDLE_VALUE <> handle) then
begin
GetModuleFileName(handle, Buffer, MAX_PATH);
CloseHandle(handle);
end;
ShowMessage(buffer);
end;end.
我这里怎么还显示空呢?
var
Buffer: array[0..MAX_PATH] of WideChar;
name: string;
begin
SetString(name, Buffer, GetModuleFileNameEx(进程句柄, 0, Buffer, Length(Buffer)));
ShowMessage(name);
end;