能力值:
( LV3,RANK:20 )
|
-
-
2 楼
![](/view/img/face/41.gif) 为了大家都下到 另起一贴上传工具 LZ记得看
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
先谢过楼上---可是 我主要想 编程实现 ----
请教一下算法 ---
(我使用 32 ASM)
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
![](/view/img/face/16.gif) 哦 那个我就不知道啦 现在我就研究的爆破 ...
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
![](/view/img/face/16.gif) 怎么没人来答呢?
给个提示也可以啊 -------
是太简单了 ???
我也很想知道----
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
如果你确定你找到的数据没错的话
那么,你在这段数据前面加上ico的头数据就行了,大概有20个字节左右,你找个ico比对一下就知道了
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
原来从网上扒来的,亲测,可用。
delphi的
可以自己试试改C
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,ShellAPI;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
edt1: TEdit;
dlgOpen1: TOpenDialog;
dlgSave1: TSaveDialog;
btn1: TButton;
pnl1: TPanel;
img1: TImage;
procedure getIcon;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.getIcon;
var
Count : Integer;
FileName : String;
i:integer;
begin
if( FileName <> edt1.Text ) then
begin
FileName:=Edt1.Text;
I := 0;
Count := ExtractIcon( Application.Handle, PChar(FileName),
$FFFFFFFF );
end
else
Inc(I);
if( I < Count ) then
img1.Picture.Icon.Handle :=
ExtractIcon( Application.Handle, PChar(FileName), I )
else
ShowMessage('你要获取至少要选择个文件吧!要.exe才行哦!');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
getIcon;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
dlgOpen1.Execute;
edt1.Text:=dlgOpen1.FileName;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
dlgsave1.Execute;
img1.Picture.SaveToFile(dlgsave1.FileName+'.ico');
end;
end.
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
自己接这个帖子吧 --- 一切 都应该 归结于 ICO 的文件格式-- MSDN 搜索 ICONS 有篇讲 格式 的经典文章
RT_GROUP_ICON 最后找到的数据 相当于 ICO 的文件头
RT_ICON 找到的是 图标的其余数据
两个结合 WriteFile 就可以提取图标了
|
能力值:
( LV11,RANK:180 )
|
-
-
9 楼
excellent !
|
|
|