EXE文件无法显示正确图标
发布网友
发布时间:2022-04-30 15:36
我来回答
共5个回答
热心网友
时间:2022-06-26 12:12
右键属性,快捷方式选项里的下面,选择“更改图标”然后选你需要的图标就可以了。
这种方法,你也可以随意的换图标。想换什么样的就换什么样的。。
只要能用。那个没关系的。还有就是如果你下载的是EXE安装包的话,只要能用就没什么问题。
如果是 安装好之后的EXE执行程序的话,可以按自己喜欢改动。方法就是上面我所说的。。
热心网友
时间:2022-06-26 12:13
#include 《stdio.h》
#include 《windows.h》
#include 《tchar.h》
struct ICONDIRENTRY
{
BYTE bWidth;
BYTE bHeight;
BYTE bColorCount;
BYTE bReserved;
WORD wPlanes;
WORD wBitCount;
DWORD dwBytesInRes;
DWORD dwImageOffset;
};
struct ICONDIR
{
WORD idReserved;
WORD idType;
WORD idCount;
//ICONDIRENTRY idEntries;
};
struct GRPICONDIRENTRY
{
BYTE bWidth;
BYTE bHeight;
BYTE bColorCount;
BYTE bReserved;
WORD wPlanes;
WORD wBitCount;
DWORD dwBytesInRes;
WORD nID;
};
struct GRPICONDIR
{
WORD idReserved;
WORD idType;
WORD idCount;
GRPICONDIRENTRY idEntries;
};
//////////////////////////////////////////////
//函数说明:修改EXE图标
//
//参 数:IconFile 图标文件
// ExeFile 被修改的EXE文件
//
//返回值: 成功为True,否则False
/////////////////////////////////////////////
bool ChangeExeIcon(LPCSTR IconFile, LPCSTR ExeFile);
//////////////////////////////////////////////
//函数说明:修改EXE图标
//
//参 数:IconFile 图标文件
// ExeFile 被修改的EXE文件
//
//返回值: 成功为True,否则False
/////////////////////////////////////////////
bool ChangeExeIcon(LPCSTR IconFile, LPCSTR ExeFile)
{
ICONDIR stID;
ICONDIRENTRY stIDE;
GRPICONDIR stGID;
HANDLE hFile;
DWORD nSize, nGSize, dwReserved;
HANDLE hUpdate;
PBYTE pIcon, pGrpIcon;
BOOL ret;
hFile = CreateFile(IconFile, GENERIC_READ, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
return false;
}
ZeroMemory(&stID, sizeof(ICONDIR));
ret = ReadFile(hFile, &stID, sizeof(ICONDIR), &dwReserved, NULL);
ZeroMemory(&stIDE, sizeof(ICONDIRENTRY));
ret = ReadFile(hFile, &stIDE, sizeof(ICONDIRENTRY), &dwReserved, NULL);
nSize = stIDE.dwBytesInRes;
pIcon = (PBYTE)malloc(nSize);
SetFilePointer(hFile, stIDE.dwImageOffset, NULL, FILE_BEGIN);
ret = ReadFile(hFile, (LPVOID)pIcon, nSize, &dwReserved, NULL);
if (!ret)
{
CloseHandle(hFile);
return false;
}
ZeroMemory(&stGID, sizeof(GRPICONDIR));
stGID.idCount = stID.idCount;
stGID.idReserved = 0;
stGID.idType = 1;
CopyMemory(&stGID.idEntries, &stIDE, 12);
stGID.idEntries.nID = 0;
nGSize = sizeof(GRPICONDIR);
pGrpIcon = (PBYTE)malloc(nGSize);
CopyMemory(pGrpIcon, &stGID, nGSize);
hUpdate = BeginUpdateResource(ExeFile, false);
ret = UpdateResource(hUpdate, RT_GROUP_ICON, MAKEINTRESOURCE(1), 0, (LPVOID)pGrpIcon, nGSize);
ret = UpdateResource(hUpdate, RT_ICON, MAKEINTRESOURCE(1), 0, (LPVOID)pIcon, nSize);
EndUpdateResource(hUpdate, false);
if (!ret)
{
CloseHandle(hFile);
return false;
}
CloseHandle(hFile);
return true;
}
新建一文本文档,把上面的代码复制进去,保存。然后把它改为BAT文件,运行。
热心网友
时间:2022-06-26 12:13
右键点桌面-属性-外观-项目(选图标)-更改右边数字改变图标大小,这样你的图标会显示出正确的形状。
试试吧。
热心网友
时间:2022-06-26 12:14
到控制面板---填加或删除程序---左侧“设定程序访问和默认值”---选配置为第一项,确定
若不行,可用修复工具修复。
热心网友
时间:2022-06-26 12:14
假如他是在桌面你可以右击该图标后--〉点击更改图标按钮 你就可以自定义他的图标了
不是在桌面的你可以先右击开始图标--〉发送到桌面快捷方式 就同上面一样了