VC++ 替换 exe 可执行文件的图标

2016-02-19 21:06 57 1 收藏

今天图老师小编要跟大家分享VC++ 替换 exe 可执行文件的图标,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - 编程语言 】

替换exe可执行文件的图标:
1、首先取得源资源的指针;
2、利用UpdateResource函数进行替换;
 void CDlgTest2Dlg::OnBTNUpdateResource()
{
 // TODO: Add your control notification handler code here
 HMODULE hExe;
 HANDLE hUpdateRes;
 HRSRC hRes;
 HANDLE hResLoad;
 char *lpResLock;
 BOOL result;
 hExe=LoadLibrary("a.exe");
 if (!hExe)
 {
  MessageBox("载入可执行文件失败!");
 }
 hRes=FindResource(hExe,MAKEINTRESOURCE(IDI_ICON1),RT_GROUP_ICON);
 if (!hRes)
 {
  MessageBox("FindResource失败!");
 }
 hResLoad=LoadResource(hExe,hRes);
 if (!hResLoad)
 {
  MessageBox("LoadResource失败!");
 }
 lpResLock=(char*)LockResource(hResLoad);
 if (!lpResLock)
 {
  MessageBox("LockResource失败!");
 }
 hUpdateRes=BeginUpdateResource("switch.exe",FALSE);
 if (!hUpdateRes)
 {
  MessageBox("BeginUpdateResource失败!");
 }
 result=UpdateResource(hUpdateRes,RT_GROUP_ICON,MAKEINTRESOURCE(IDR_MAINFRAME),
  MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),lpResLock,SizeofResource(hExe,hRes));
 if (!result)
 {
  MessageBox("UpdateResource失败!");
 }
 if (!EndUpdateResource(hUpdateRes, FALSE))
 {
  MessageBox("Could not write changes to file.");
 }
 
 // Clean up.
 if (!FreeLibrary(hExe))
 {
  MessageBox("Could not free executable.");
 }
}

来源:http://www.tulaoshi.com/n/20160219/1625271.html

延伸阅读
在Windows通用对话框中,查找/替换对话框是比较特殊的一个,它是一个非模态对话框,所以它的使用与其它通用对话框有所不同。 一、注册 注册的目的有两个,一是说明在程序中要使用查找/替换对话框,二是让窗口能响应查找/替换消息,提供相应的消息函数。 注册位置应该在查找/替换对话框的父窗口,比如主框架窗口CMainFrame、...
最新功能:与其它程序捆绑后,图标为其它程序的图标 这个示范程序没有form,编译、压缩后仅40K,运行后不长驻内存 如果加上隐藏的窗体,加上搜索可执行程序的功能,加上监视系统的功能,加上 %$#@*^ 功能... 程序中几个数字的确定: 1  在本程序编译后用Aspack.Exe压缩,大小为41472 2  经过分析,本程...
在学习Visual C++编程的过程中,有很多朋友可能会问Visual C++中如何保证256色以上的图标加载后不失真。虽然有介绍如何实现256色以上的工具栏的文章,但是方法中大都采用加载一幅256色以上的工具栏位图的方法。这样的方法存在一个麻烦就是用什么简便好用的制图工具来做这样的位图呢?相信读者朋友都希望能有更直接的方法来使用256色以上的...
VC++的Unicode编程 作者:韩耀旭 下载源代码 一、什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范。每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH)。其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),其中包括了控制字符、数...
VC++实现对文件夹时间的修改 摘要: 本文给出了一种通过VC++程序对文件夹的时间属性信息进行获取与更改的一种方法。 关键词: 文件夹;时间属性;Visual C++ 6.0 引言: 通常在数据维护与数据管理等工作中,经常要对各类数据进行备份操作。对于大多数的IT企业和绝大多数的个人用户而言,数据的备份主要是对数据内容...

经验教程

129

收藏

89
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部