Показать сообщение отдельно
  #1  
Старый 17.04.2011, 10:56
romanzi romanzi вне форума
Прохожий
 
Регистрация: 21.11.2010
Сообщения: 24
Репутация: 10
По умолчанию Ассоциации

Короче говоря, код действует. Ассоциации заносятся в реестр, но не работают.

Код:
procedure Associate;
var s:string;
begin
  Reg:=TRegistry.Create; // создаем
  Reg.RootKey := HKEY_CLASSES_ROOT; // указываем корневую ветку

  Reg.OpenKey('.dcu\OpenWithList\', true);
  Reg.WriteString('TestApplication.dcu', '');

  Reg.OpenKey('\TestApplication.dcu\DefaultIcon\', true);
  s:=Application.ExeName+',0';
  Reg.WriteString('', s);

  Reg.OpenKey('\TestApplication.dcu\Shell\Open\', true);
  Reg.WriteString('', 'Открыть в TestApplication');

  Reg.OpenKey('command\', true);
  s:='"'+Application.ExeName+'" "%1"';
  Reg.WriteString('', s);

  Reg.Free;

  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;

Почему?
Ответить с цитированием