源程序:
var
x,NumberOfIcons: integer;
Icon: TIcon;
pFName: array[0..255] of char;
oldCursor: TCursor;
begin
if FileExists('1.icl') then begin
OldCursor := Screen.Cursor;
Screen.CurSor := crHourGlass;
NumberOfIcons := ExtractIcon(hInstance, StrPCopy(pFName, '1.icl'), $FFFFFFFF);
try
for x := 0 to NumberOfIcons - 1 do begin
Icon := TIcon.Create;
Icon.Handle := ExtractIcon(hInstance, pFName, x);
icon.SaveToFile(inttostr(x)+'.ico');
form1.Caption := Format('%d', [x]);
Icon.Free;
end;
finally
Screen.Cursor := OldCursor;
end;
end;
end;
程序需要调用ShellAPI.pas。
不过这个程序可以把一个图标库中的所有32X32的图标依次以1.ico,2.ico,3.ico的名字存储,不知对你有没有帮助,我只能做到这一步了。
现成的软件,我想不到哪个能满足你的需要,MA98应该是最好的了。