[ vericaa @ 05.02.2011. 13:44 ] @
Pre svega pozdrav svima. Trazila sam na forumu ali nisam uspela da nadjem resenje. Recimo da u delphiju 7 imam formu sa memo komponentom. Potrebno
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;


[Ovu poruku je menjao savkic dana 05.02.2011. u 17:04 GMT+1]
[ abitbp6 @ 05.02.2011. 14:40 ] @
Tu drugu ikonicu dodas u program pomocu nekog alata za rad sa resursima, vidis koji indeks ima, i onda, ako tvoja ikonica ima indeks , npr 1, umesto ovoga:

reg.Writestring('', exepfad + ',0');

Napises:

reg.Writestring('', exepfad + ',1');