通过进程ID获取进程名

来源:互联网 发布:js中unicode编码 编辑:程序博客网 时间:2024/04/29 06:07

通过进程ID获取进程名

网上流传代码:

uses TLhelp32function GetProcessNameById(const AID: Integer): String;var    h:thandle;    f:boolean;    lppe:tprocessentry32;begin    Result := '';    h := CreateToolhelp32Snapshot(TH32cs_SnapProcess, 0);    lppe.dwSize := sizeof(lppe);    f := Process32First(h, lppe);    while integer(f) <> 0 do    begin      if Integer(lppe.th32ProcessID) = AID then      begin        Result:= StrPas(lppe.szExeFile);        break;      end;      f := Process32Next(h, lppe);    end;end.


自我改编代码

uses TLhelp32,PsAPI;function GetProcessName(ProcessID: DWORD): string;var  Hand: THandle;  ModName: array[0..Max_Path - 1] of Char;  hMod: HModule;  n: DWORD;begin  Result := '';  Hand := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False,    ProcessID);  if Hand > 0 then  try    try      ENumProcessModules(Hand, @hMod, Sizeof(hMod), n);      if GetModuleFileNameEx(Hand, hMod, ModName, Sizeof(ModName)) > 0 then        Result := ExtractFileName(ModName);    except    end;  finally    CloseHandle(Hand);  end;end;end.



D7编译通过!

0 0
原创粉丝点击