uses
Registry...
{$R *.DFM}
function hozzarendeles(kiterjesztes,path:string;ikon_szama:integer):boolean;
var
reg:Tregistry;
s:string;
begin
s:='xakk_'+copy(kiterjesztes,2,length(kiterjesztes)-1);
reg:=Tregistry.create;
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey(kiterjesztes,true);
reg.WriteString('',s);
reg.OpenKey('shell\open\command',true);
reg.WriteString('','"'+path+'"'+' "%1"');
reg.CloseKey;
reg.OpenKey(kiterjesztes+'\Defaulticon',true);
reg.WriteString('',path+','+inttostr(ikon_szama));
reg.CloseKey;
reg.CloseKey;
reg.OpenKey(s + '\shell\open\command',true);
reg.WriteString('','"'+path+'"'+' "%1"');
reg.CloseKey;
reg.OpenKey(s+'\Defaulticon',true);
reg.WriteString('',path+','+inttostr(ikon_szama));
reg.CloseKey;
form1.caption:=path;
reg.free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
hozzarendeles('.ziz','d:\papa.exe',0);
end;
end.
Megjegyzés:
Na ja! A fenti *.ziz kiterjesztésü fájlt már magadra irányítottad, de a d:\papa.exe nevü programodnak ezt fel is kell fogni valahogy:
procedure TForm1.FormCreate(Sender: TObject);
var
a:integer;
begin
for a:=0 to paramcount do if paramcount<>0 then
listbox1.Items.Add(paramstr(a));
end;
Még az előzőkhöz annyit, hogy:
hozzarendeles('.ziz','d:\papa.exe',0);
ahol a 0 az exe-ben tárolt ikon sorszáma!
|