mi je da u win registrujem fajl sa novom ekstenzijom tipa nekifajl.test i ikonicom. Kad se klikne na taj fajl u win exploreru da se taj fajl otvori preko te moje aplikacije.
E sad delimicno sam nasla resenje. Preko ove procedure sam uspela sve to ali je problem ostala ikonica. Ovako nekifajl.test ima istu ikonicu kao i sam program.
Kako mogu da fajlu sa recimo *.test ekstenzijom dodam neku drugu ikonicu?
Hvala unapred

Code:
procedure TForm1.RegisterFileType(prefix: string; exepfad: string);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('.' + prefix, True);
try
reg.Writestring('', prefix + 'file');
finally
reg.CloseKey;
end;
reg.CreateKey(prefix + 'file');
reg.OpenKey(prefix + 'file\DefaultIcon', True);
try
reg.Writestring('', exepfad + ',0');
finally
reg.CloseKey;
end;
reg.OpenKey(prefix + 'file\shell\open\command', True);
try
reg.Writestring('', exepfad + ' "%1"');
finally
reg.CloseKey;
end;
finally
reg.Free;
end;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
path:=ExtractFilePath(ParamStr(0));
RegisterFileType('test', path+'/Project1.exe');
if ParamStr(1)<>'' then
memo1.Lines.LoadFromFile(ParamStr(1));
end;
procedure TForm1.RegisterFileType(prefix: string; exepfad: string);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('.' + prefix, True);
try
reg.Writestring('', prefix + 'file');
finally
reg.CloseKey;
end;
reg.CreateKey(prefix + 'file');
reg.OpenKey(prefix + 'file\DefaultIcon', True);
try
reg.Writestring('', exepfad + ',0');
finally
reg.CloseKey;
end;
reg.OpenKey(prefix + 'file\shell\open\command', True);
try
reg.Writestring('', exepfad + ' "%1"');
finally
reg.CloseKey;
end;
finally
reg.Free;
end;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
path:=ExtractFilePath(ParamStr(0));
RegisterFileType('test', path+'/Project1.exe');
if ParamStr(1)<>'' then
memo1.Lines.LoadFromFile(ParamStr(1));
end;
[Ovu poruku je menjao savkic dana 05.02.2011. u 17:04 GMT+1]