获取程序(EXE文件,dll文件)的主图标
来源:互联网 发布:软件项目合同范本 编辑:程序博客网 时间:2024/04/30 18:14
前段时间工作上遇到一个需求,提取一个exe的主图标并且存成文件。这个需求很常规,但一弄起来还是遇到了些问题。
1.exe主图标的标识(ID号)是哪个?
2.如何存成ico文件
现在我来说说问题1.
因为我平时给exe添加图标资源通常都有一个资源ID IDR_ICON_GIRL(1001)什么的 ,算了 不描述了 直接说解决办法
其实exe啊 dll啊 凡是符合PE文件格式的 这个方式都适用.
BOOL CALLBACK MyEnumProcedure( HANDLE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG lParam );
int GetMainIconId( LPCTSTR lpszPath )
{
HINSTANCE hInstance = LoadLibrary( lpszPath );
int iconIndex = 0;
EnumResourceNames( hInstance, RT_GROUP_ICON, (ENUMRESNAMEPROC)MyEnumProcedure, (LPARAM)&iconIndex );
return iconIndex;
}
HICON GetPeIconBySize( LPCTSTR lpszPath, int iconId, int nSize )
{
HINSTANCE hInstance = LoadLibrary( lpszPath );
HICON hIocn = (HICON)::LoadImage( hInstance, MAKEINTRESOURCE(iconId), IMAGE_ICON, nSize, nSize, LR_DEFAULTCOLOR );
FreeLibrary(hInstance);
return hIocn;
}
BOOL CALLBACK MyEnumProcedure( HANDLE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG lParam )
{
int index = 0;
if( IS_INTRESOURCE(lpszName) )
{
index = (int)(lpszName );
}
else
{
CString sName = lpszName;
sName.Replace(L'#', L'');
index = _ttoi(sName.GetBuffer(0));
}
int *pVal = (int*)lParam;
if( *pVal == 0 || index <= *pVal )
{
*pVal = index;
}
return TRUE;
}
提个引子 具体的需求 具体暗盘吧
- 获取程序(EXE文件,dll文件)的主图标
- 获取EXE.Dll中的图标文件
- 获取.exe/.dll/.icon文件的Icon图标资源
- 获取exe可执行程序文件中的图标
- 保存 EXE、DLL文件图标
- WinAPI: ExtractIcon - 获取 EXE、DLL 或 ICO 文件中的图标
- 获取exe文件中的图标
- 获取exe文件中的图标
- 提取exe文件的图标
- 修改EXE文件的图标
- 给QT 程序的EXE文件添加图标
- (轉)获取exe文件中的图标
- 一个从EXE、DLL文件中提取、存取图标完整程序
- 【转】 一个从EXE、DLL文件中提取、存取图标完整程序
- 一个从EXE、DLL文件中提取、存取图标完整程序
- 一个从EXE、DLL文件中提取、存取图标完整程序
- 怎样获取exe,dll,ocx等PE文件的版本号
- delphi 获取Exe或DLL的文件版本信息
- 【转】 R语言与机器学习学习笔记(分类算法)(1)K-近邻算法
- Linux抓包和分析
- nginx php 上传大于15m文件出错
- proxy bash
- 什么是高内聚、低耦合?
- 获取程序(EXE文件,dll文件)的主图标
- Eclipse常用快捷键汇总
- Linux-挂载移动硬盘
- CSS 3的display:盒类型详解
- 关于链表的专业术语以及怎样表示一个链表
- qmake理解
- 【转】R语言与机器学习学习笔记(分类算法)(2)决策树算法
- HDU~1213~How Many Tables
- 8.3.3.1 C# 中的组合行为