![]() |
|
#1
|
|||
|
|||
![]() Короче говоря, код действует. Ассоциации заносятся в реестр, но не работают.
Код:
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; Почему? |