imagelist中的ico如何才能保存成256色的? 帮忙解决者另开500分相送 (200分)

  • 主题发起人 主题发起人 一少
  • 开始时间 开始时间

一少

Unregistered / Unconfirmed
GUEST, unregistred user!
ico.saveToFile('c:/aa.ico');
始终是16色的,怎么才能保存成256色


 
1.如何取出exe,dll文件中的图标:网上工具多的是
2如何改掉exe文件的图标:exescope就可以,还有resourcehack等
 
源码空间有例子。
 
to powers,我说的是用程序实现
 
so easy
var
icon:TIcon;
mhandle:integer;
begin
icon:=TIcon.Create;
mhandle:=ExtractIcon(Application.Handle,pchar(Application.ExeName),0);
icon.Handle:=mhandle;
icon.SaveToFile('c:/nizijian.ico');
end;
 
我以前就用楼上nizijian的方法,不过颜色有点失真!16色。
你试试下三个方法:(1)先用LoadLibraryEx(PChar (OpenDialog.FileName), 0,Load_Library_As_DataFile);
,然后用 EnumResourceNames 找图标资源。
(2)SHGetFileInfo(pchar(opendialog1.filename),0,FileInfo,sizeof(FileInfo),
SHGFI_SYSICONINDEX or SHGFI_SMALLICON or SHGFI_ICON);//定义FileInfo:TSHFileInfo
(3) DrawIcon(Form1.Canvas.Handle, 10, 10,ExtractAssociatedIcon
(HInstance, pchar(opendialog1.filename),IconIndex));//IconIndex:word
 
请大家继续
 
可以删除,修改和替换资源中的内容
1.BeginUpdateResource
2.BOOL UpdateResource(
HANDLE hUpdate, // update-file handle
LPCTSTR lpType, // address of resource type to update
LPCTSTR lpName, // address of resource name to update
WORD wLanguage, // language identifier of resource
LPVOID lpData, // address of resource data
DWORD cbData // length of resource data, in bytes
);
3.EndUpdateResource
 
多人接受答案了。
 
后退
顶部