让 江小白 来看看帖子里藏了啥好东西~~~ |
![]() ![]() |
大佬大佬 |
在来个修改exe的图标 |
666666666666666 |
你是不是删错文件了?打开,加载文件不完整的? |
呵呵仙 发表于 2024-11-17 16:27 挑战难度更高的 ![]() |
感谢大佬分享 |
![]() #include <windows.h> #include <stdio.h> HICON ExtractIconFromEXE(const char* exePath, int index) { // 使用ExtractIcon函数提取图标 HICON largeIcon = ExtractIcon(GetModuleHandle(NULL), exePath, index); return largeIcon; } void SaveIconToFile(HICON icon, const char* filePath) { // 将图标保存为文件 ICONINFO iconInfo; GetIconInfo(icon, &iconInfo); BITMAP bmp; GetObject(iconInfo.hbmColor, sizeof(BITMAP), &bmp); BITMAPINFOHEADER bih = {0}; bih.biSize = sizeof(BITMAPINFOHEADER); bih.biWidth = bmp.bmWidth; bih.biHeight = -bmp.bmHeight; // 负数表示从上到下的图像 bih.biPlanes = 1; bih.biBitCount = 32; bih.biCompression = BI_RGB; HDC hDC = GetDC(NULL); HDC hMemDc = CreateCompatibleDC(hDC); HBITMAP hBitmap = CreateDIBSection(hMemDc, (BITMAPINFO*)&bih, DIB_RGB_COLORS, NULL, NULL, 0); HGDIOBJ hOldSel = SelectObject(hMemDc, iconInfo.hbmColor); BitBlt(hMemDc, 0, 0, bmp.bmWidth, bmp.bmHeight, NULL, 0, 0, WHITENESS); SelectObject(hMemDc, hOldSel); // 保存为BMP文件 FILE* fp = fopen(filePath, "wb"); if (fp) { BITMAPFILEHEADER bfh = {0}; bfh.bfType = 0x4D42; // "BM" bfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + bmp.bmWidth * bmp.bmHeight * 4; bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER); fwrite(&bfh, sizeof(BITMAPFILEHEADER), 1, fp); fwrite(&bih, sizeof(BITMAPINFOHEADER), 1, fp); fwrite(iconInfo.hbmColor, bmp.bmWidth * bmp.bmHeight * 4, 1, fp); fclose(fp); } DeleteObject(iconInfo.hbmColor); DeleteObject(iconInfo.hbmMask); DeleteObject(hBitmap); DeleteDC(hMemDc); ReleaseDC(NULL, hDC); } int main() { const char* exePath = "C:\\path\\to\\your\\application.exe"; HICON icon = ExtractIconFromEXE(exePath, 0); // 提取第一个图标 if (icon) { SaveIconToFile(icon, "output.bmp"); // 保存图标到文件 DestroyIcon(icon); // 清理资源 } return 0; } // ![]() |
sitemap|
易语言源码|
易语言教程|
易语言论坛|
易语言模块|
手机版|
广告投放|
精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司
( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173