En
mi web, tienes una aplicación que se llama VProcess, que en su día hice para probar algunas clases de la WMI.
Muestra los procesos que hay funcionando y las características de cada uno.
El código está disponible, así que puedes mirar cómo se obtiene el icono para cada proceso funcionando, a partir del path del ejecutable.
En mi caso utilizo algo así (por si no quieres descargar todo el fuente);
Código Delphi
[-]
procedure GetFileIconAndDescription(AFileName:string; AIcon: TIcon);
var
FileInfo : SHFILEINFO;
begin
SHGetFileInfo(PChar(AFileName),
FILE_ATTRIBUTE_NORMAL,
FileInfo,
SizeOf(FileInfo),
SHGFI_TYPENAME or SHGFI_USEFILEATTRIBUTES
);
SHGetFileInfo(PChar(AFileName),
FILE_ATTRIBUTE_NORMAL,
FileInfo,
SizeOf(FileInfo),
SHGFI_ICON or SHGFI_SMALLICON or
SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES
);
AIcon.Handle := FileInfo.hIcon;
end;