własne rozszerzenie

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

Stworzyłem w systemie własne rozszerzenie do własnego programu w Delphi. I mam problem z ikonką: jako ikonkę mam podane

Kopiuj
Application.exename + ',1'

ale nie pokazuje mi ikonki na pliku, mimo że jest ta ikonka w programie. Próbowałem dać plik .ico i zmieniac cyferkę po przecinku, ale nic z tego. Co zrobić, żeby działało?
Mój kod dodawania rozszerzenia:

Wywołanie:

Kopiuj
RegisterFileExtension('.etp', 'Pisarz_File', Application.ExeName, Application.ExeName + ',1');

Procedura:

Kopiuj
procedure TForm1.RegisterFileExtension(Ext, Name, ProgramName, Icon: string);
var
  Reg: TRegistry;
begin
  if Ext[1] <> '.' then
    Ext := '.' + Ext;
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey(Ext, True);
    Reg.WriteString('', Name);
    Reg.CloseKey;
    Reg.OpenKey(Name + '\shell\open\command', True);
    Reg.WriteString('', '"' + ProgramName + '" "%1"');
    Reg.CloseKey;
    Reg.OpenKey(Name + '\DefaultIcon', True);
    Reg.WriteString('', Icon);
    Reg.CloseKey;
    showmessage('Rozszerzenie zostało zarejestrowane!');
  finally
    FreeAndNil(Reg);
  end;
end;
hyperhex
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 30
0

Spróbuj bez indexu ikony, samo exename

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

to nic nie daje

RedbaK
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Helsingør / FZ
  • Postów: 1051
0

Musisz odświeżyć rejestr, np. resetem kompa. ;]
A najlepiej poszukaj coś o odświeżaniu Shell'a ikon.
Popatrz tez na to:
Własne rozszerzenie

mkaz
  • Rejestracja: dni
  • Ostatnio: dni
0

Uważam,że zamiast 1 powinno być 0.
Gdyż numerowanie ikon zaczyna się od 0.
Pozdrawiam.

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 46
0

restart zadziałał. jak odświeżyć shella ikon??

mkaz
  • Rejestracja: dni
  • Ostatnio: dni
0

Użyj :
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
Pozdrawiam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.