替换应用程序exe图标,主要使用的API函数是BeginUpdateResource(),UpdateResource(),EndUpdateResource()来使用自定义的ico文件类替换exe程序原来的图标。

  1. // 第一个参数是将要替换图标的exe文件路径,第二个参数是替换的ico文件路径
  2. void ReplaceExeIco(LPCTSTR lpszApp, LPCTSTR lpszIco)
  3. {
  4. try
  5. {
  6. CFile file(lpszIco, CFile::modeRead);
  7. LONG lOffset = 0;
  8. DWORD dwSize = 0;
  9. DWORD dwBytes = 0;
  10. CONST BYTE bGroupIcoSize = 0x18;
  11. BYTE* lpGroupIco = new BYTE[bGroupIcoSize];
  12. memset(lpGroupIco, 0, bGroupIcoSize);
  13. file.Read(lpGroupIco, 0x06);
  14. file.Read(lpGroupIco+0x08, 0x0C);
  15. memcpy(&dwSize, lpGroupIco+0x10, sizeof(DWORD));
  16. file.Read(&lOffset, sizeof(lOffset));
  17. BYTE* lpRes = new BYTE[dwSize];
  18. memset(lpRes, 0, dwSize);
  19. file.Seek(lOffset, CFile::begin);
  20. file.Read(lpRes, dwSize);
  21. HANDLE hApp = BeginUpdateResource(lpszApp, NULL);
  22. UpdateResource(hApp, RT_GROUP_ICON, MAKEINTRESOURCE(1), 0, lpGroupIco, bGroupIcoSize);
  23. UpdateResource(hApp, RT_ICON, MAKEINTRESOURCE(1), 0, lpRes, dwSize);
  24. EndUpdateResource(hApp, FALSE);
  25. delete[] lpRes;
  26. delete[] lpGroupIco;
  27. file.Close();
  28. }
  29. catch (CException* e)
  30. {
  31. e->ReportError();
  32. e->Delete();
  33. }
  34. }
  35. //调用方法很简单,例如下面这样就可以了
  36. ReplaceExeIco(_T("F://11.exe"), _T("F://11.ico"));

http://blog.csdn.net/visualeleven/article/details/5754831

最新文章

  1. 点击div 跳转并通过URL传参
  2. 不使用session,借助redis实现验证码
  3. spring中用到哪些设计模式
  4. 34款Firefox渗透测试插件工具
  5. HTML5新特性及详解
  6. Hibernate中的组合映射
  7. CCOrbitCamera卡牌翻转效果
  8. Python编程规范及性能优化(转载)
  9. 网络流相关(拓扑)CodeForces 269C:Flawed Flow
  10. 第三篇:GPU 并行编程的运算架构
  11. web应用怎么跳过某些Filter
  12. SpringMVC整合Thymeleaf3
  13. jQuery插件学习之选项卡Tab
  14. abap test msg
  15. 学Java的18天,今天老师讲构造方法;
  16. if-else练习
  17. Lua游戏开发参考资料收集
  18. hive 配置元数据以mysql 存储
  19. Linux 的启动流程--转
  20. SpringMVC请求参数接收总结

热门文章

  1. ABAP文本编辑框操作
  2. 文件操作的openmode
  3. chart.js图表库案例赏析,饼图添加文字
  4. quartz2D简单使用
  5. DiskFileItemFactory类---分析及运用
  6. 【Search Insert Position 】cpp
  7. 【Binary Tree Level Order Traversal】cpp
  8. 《IT小小鸟》阅读心得
  9. linux命令集——<一>目录处理命令
  10. Leetcode#49 Anagrams