用Delphi制作图标抽取器
技术与开发
许多软件、游戏的图标都很漂亮,比如QQ、千千静听等,相信许多读者朋友都想将这些图标抽取出来,以为己用。下面我们就来用Delphi制作一个图标抽取器。
打开Delphi,新建一个工程,向窗体添加如下组件:一个Image组件,用于图标的显示,两个Button组件,其Caption分别为“打开”、“保存”;一个OpenDialog组件和一个SavePictureDialog组件,分别用于打开文件和保存图标,最后双击“打开”按钮,添加如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var IconIndex:Word;//IconIndex为图标序号,注意类型为Word,如果不定义而直接在ExtractAssociatedIcon函数里使用0、1等,程序会当作Integer类型而报错。
begin
IconIndex:=0;//序号为0的图标就是Windows中各文件的显示图标。如果文件包含1个以上的图标,则可以将IconIndex设为1、2等进行第2、第3个图标的抽取;如果文件中只有一个图标,而IconIndex设为1、2等时,将抽取第1个图标。
if OpenDialog1.Execute then
Image1.Picture.Icon.Handle:=
ExtractAssociatedIcon(hInstance,PChar(OpenDialog1.FileName),IconIn dex);
end;
双击“保存”按钮,向程序中添加如下代码:
procedure TForm1.Button2Click(Sender: TObject);
begin
if SavePictureDialog1.Execute then
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
end;
运行图标抽取器,就可以提取出图标(见图)。我们既可以用它来抽取QQ、千千静听等软件的图标,还可以抽取Word文档、网页等非可执行文件的图标,甚至系统打不开的文件的图标也能被抽取,真可谓是抽遍电脑无敌手!
