А тебе у своего окна или у чужого.
Если у своего, то тут все просто. В качестве иконки окна (если ты сам не назначал иконку отдельному окну, а в этом случае ты уже ее имеешь) всегда используется иконка приложения, а она доступна через Aplication.Icon.
Если надо получить иконку чужого окна, то тут немного сложнее. Исходя из задачи, как я понимаю, хэндл нужного окна у тебя уже должен быть. Тогда по хэндлу окна через GetWindowThreadProcessId получаем ID процесса, по ID процесса через GetModuleFileNameEx (см
https://stackoverflow.com/questions/...d-using-delphi) получаешь путь к программе, ну а дальше вызываешь ExtractAssociatedIconW (см доку
https://learn.microsoft.com/en-us/wi...ssociatediconw) для получения хэндла иконки. А далее делаешь что-то типа такого:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 | var
IconHndl : THandle;
Icon : TIcon;
begin
IconHndl := GetIconHandleByWnd(WndHandle);
Icon := TIcon . Create;
Try
Icon . Handle := IconHndl;
Form1 . Canvas . Draw( 0 , 0 ,Icon);
Finally
Icon . Free;
End ;
|