aardio 获取 exe 大图标 48x48 函数 _SHIL_EXTRALARGE fsys.info.get win.imageList.shell imageList.getIcon gdip.bitmap

aardio 获取 exe 大图标 48x48 函数 _SHIL_EXTRALARGE fsys.info.get win.imageList.shell imageList.getIcon gdip.bitmap

// 获取exe大图标 48x48
import win.imageList;
import fsys.info;
var path = "E:\softzInstall\Firefox-full-latest-win64.exe";
var sfi = fsys.info.get(path, 0x200/*_SHGFI_DISPLAYNAME*/ | 0x4000/*_SHGFI_SYSICONINDEX*/);
var imageList =  win.imageList.shell(2/*_SHIL_EXTRALARGE*/ )
var icon = imageList.getIcon(sfi.iIcon, 1/*_ILD_TRANSPARENT*/);
import gdip.bitmap;
bmp = gdip.bitmap(icon,1/*_IMAGE_ICON*/);
if(bmp) bmp.save("ab2024aaa111-8813.png");
::DestroyIcon(icon)

// 参考文档
/*
https://learn.microsoft.com/zh-cn/windows/win32/api/shellapi/nf-shellapi-shgetimagelist#%E5%8F%82%E6%95%B0
https://learn.microsoft.com/zh-cn/windows/win32/api/shellapi/nf-shellapi-shgetfileinfow
https://bbs.aardio.com/forum.php?mod=viewthread&tid=13787
https://www.coder.work/article/989557
https://blog.csdn.net/qi_jianzhou/article/details/668087
https://cloud.tencent.com/developer/ask/sof/111669106
https://www.cnblogs.com/zwh0910/p/17541176.html
https://aardio.online/thread-140.htm
*/
posted @ 2024-03-15 09:39  彭成刚  阅读(48)  评论(0编辑  收藏  举报