请问如何修改可执行文件的图标?

Kenta 2003-04-25 07:19:55
最好能给出例子,谢谢。
...全文
584 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
matlab7 2003-06-10
  • 打赏
  • 举报
回复
学习中……:)
ksaiy 2003-06-10
  • 打赏
  • 举报
回复
你可以用现成的软件来实现,网上很多的~
Kenta 2003-05-20
  • 打赏
  • 举报
回复
上面那个例子好像不行。
cangus 2003-05-20
  • 打赏
  • 举报
回复
有这样的api函数,我怎么不知道呀
Kenta 2003-05-20
  • 打赏
  • 举报
回复
要求的是动态修改,别的文件。
htt9931 2003-05-20
  • 打赏
  • 举报
回复
同意上铺的兄弟姐妹
lovemaggic 2003-05-20
  • 打赏
  • 举报
回复
方法如下:
1.进入VC++IDE环境,点击文件-->打开,文件类型选择exe,OpenAS选择Resources,
然后选中你的可执行文件,点击确定.
2.同上面大侠们所说:把IDR_MAINFRAME个删掉,加一个自己的,改名称为IDR_MAINFRAME.
cxf1976 2003-05-10
  • 打赏
  • 举报
回复
看看一下代码
HRSRC hResLoad; // handle to loaded resource
HANDLE hExe; // handle to existing .EXE file
HRSRC hRes; // handle/ptr. to res. info. in hExe
HANDLE hUpdateRes; // update resource handle
char *lpResLock; // pointer to resource data
BOOL result;
// Load the .EXE file that contains the dialog box you want to copy.
hExe = LoadLibrary("hand.exe");
if (hExe == NULL)
{
ErrorHandler("Could not load exe.");
}

// Locate the dialog box resource in the .EXE file.
hRes = FindResource(hExe, "AboutBox", RT_DIALOG);
if (hRes == NULL)
{
ErrorHandler("Could not locate dialog box.");
}

// Load the dialog box into global memory.
hResLoad = LoadResource(hExe, hRes);
if (hResLoad == NULL)
{
ErrorHandler("Could not load dialog box.");
}

// Lock the dialog box into global memory.
lpResLock = LockResource(hResLoad);
if (lpResLock == NULL)
{
ErrorHandler("Could not lock dialog box.");
}

// Open the file to which you want to add the dialog box resource.
hUpdateRes = BeginUpdateResource("foot.exe", FALSE);
if (hUpdateRes == NULL)
{
ErrorHandler("Could not open file for writing.");
}

// Add the dialog box resource to the update list.
result = UpdateResource(hUpdateRes, // update resource handle
RT_DIALOG, // change dialog box resource
"AboutBox", // dialog box name
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), // neutral language
lpResLock, // ptr to resource info
SizeofResource(hExe, hRes)); // size of resource info.
if (result == FALSE)
{
ErrorHandler("Could not add resource.");
}

// Write changes to FOOT.EXE and then close it.
if (!EndUpdateResource(hUpdateRes, FALSE))
{
ErrorHandler("Could not write changes to file.");
}

// Clean up.
if (!FreeLibrary(hExe))
{
ErrorHandler("Could not free executable.");
}
aicheng 2003-05-10
  • 打赏
  • 举报
回复
使用一些汉化工具,如eXescope等。可以修改其他可执行文件的图标。
前提是这些可执行文件没有加密(加壳)。
nicktzp 2003-05-01
  • 打赏
  • 举报
回复
插入你想要的icon,然后再选择导入的icon(在资源中选择)原来的为IDR_MAINFRAME,后来就是其他的名字!
mingbao 2003-04-27
  • 打赏
  • 举报
回复
不知道这样行不行,做一个单文档程序,自己定做一个图标的位图,然后把资源编辑器里面ICON资源里面的IDR_MAINFRAME删掉,导入自己的图标,并将ID改为IDR_MAINFRAME。当打开文件时,在文档类的Searial()函数里面以二进制流形式把文件打开并读入到一个CFile对象里面去。当保存文件时,将这个二进制流文件通过归档类输入到磁盘上去。这样一个可执行程序的图标应该改变了,虽然已经不是同一个文件,但相当于拷贝了一份那个可执行程序!
我的建议可能帮不了你的忙,仅供你参加!
Kenta 2003-04-26
  • 打赏
  • 举报
回复
搞错,我说的是,如何修改别的可执行文件的图标。对资源的修改,不太熟悉。
dreamhmily 2003-04-25
  • 打赏
  • 举报
回复
同意楼上的们
但是如果希望在执行文件被执行时,标题栏内左上角的图标改变,怎么办?
aicheng 2003-04-25
  • 打赏
  • 举报
回复
先导入自己的图标,再将原有的删除或改变一下ID号,再将导入的图标
的ID号改为IDR_MAINFRAME,再重新编译,一切OK.
lblyy76 2003-04-25
  • 打赏
  • 举报
回复
LoadIcon函数
还有一种,就把图表资源给替换掉。把你要用的图标导入,在资源编辑状态,把原来的图标给删掉。拷贝导入的图标就可以了
dizzo 2003-04-25
  • 打赏
  • 举报
回复
把资源里的那个删掉,再加一个自己的,不过要改名称为IDR_MAINFRAME

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧