本文整理自网络,侵删。
uses Winapi.ShellAPI, Winapi.TlHelp32;
function GetProcessFullPath(APid: Cardinal): string;var hModuleSnap: THandle; ModuleEntry: TModuleEntry32;begin Result := ''; hModuleSnap := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, APid); if (hModuleSnap = INVALID_HANDLE_VALUE) then Exit; try FillChar(ModuleEntry, SizeOf(TModuleEntry32), #0); ModuleEntry.dwSize := SizeOf(TModuleEntry32); if not Module32First(hModuleSnap, ModuleEntry) then Exit; Result := PChar(@ModuleEntry.szExePath[0]); finally CloseHandle(hModuleSnap); end;end;
function GetProcessIco(APid: Cardinal): HICON;var lpiIcon: Word;begin lpiIcon := 0; Result := ExtractAssociatedIcon(HInstance,PChar(GetProcessFullPath(APid)), lpiIcon);end;
procedure TForm1.FormCreate(Sender: TObject);beginImage1.Picture.Icon.Handle:=GetProcessIco(17036);
end;
效果图:
相关阅读 >>
Delphi winapi: getactivewindow - 获取当前活动窗口的句柄
Delphi10.3通过rest单元使类和json数据互相转换
更多相关阅读请进入《Delphi》频道 >>