Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Еще раз об ассоциациях...


Автор: McDevil 13.3.2006, 16:10
Я уже раньше создавал подобную тему, меня админ по-моему переслал на какой-то топик, но на тот момент этот топик мне очень помог, описанно там все боло предельно понятно, но у меня появились новые как бы сказать... требования к своей программе...
Раньше у меня иконка, которая присваевается моему файлу с моим расширением появлялась только после перегрузки системы... Я решил перезагрузить explorer, но ето все заметное для пользователя деяние... Ведь когда его вырубаешь сами знаете, что происходит... В общем надо так присвоить ассоциации, чтоб и иконка и все сразу работало, без всяких там перезагрузок... smile

Автор: Snowy 13.3.2006, 16:45
Код тот же самый. Только небольшая модификация:
Код
uses registry, shlobj;

procedure AppRegister(ext, app, ico: string);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CLASSES_ROOT;
  Reg.LazyWrite := False;
  Reg.OpenKey('.'+ext+'\shell\open\command',True);
  Reg.WriteString('', app + ' %1');
  Reg.CloseKey;
  Reg.OpenKey('.'+ext+'\DefaultIcon', True);
  Reg.WriteString('', ico);
  Reg.CloseKey;
  Reg.Free;
  SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); // вот эта волшебная строчка
end;

// пример
procedure TForm1.Button1Click(Sender: TObject);
begin
  AppRegister('sss', ParamStr(0), ParamStr(0)+',0');
end;

Добавлено @ 16:47
Цитата(McDevil @ 13.3.2006, 16:10 Найти цитируемый пост)
меня админ по-моему переслал на какой-то топик
я не админ

Автор: McDevil 14.3.2006, 02:22
Спасибо... работает или нет еще не проверил... так, что еще могут быть вопросы...
Цитата(Snowy @ 13.3.2006, 16:45 Найти цитируемый пост)
я не админ

ну модератор... smile

Автор: Snowy 14.3.2006, 09:37
Цитата(McDevil @ 14.3.2006, 02:22 Найти цитируемый пост)
работает или нет еще не проверил...
Я проверил. Работает ;)

Цитата(McDevil @ 14.3.2006, 02:22 Найти цитируемый пост)
Спасибо...
Всегда пожалуйста. Заходи еще.

Автор: McDevil 14.3.2006, 14:15
Цитата(Snowy @ 14.3.2006, 09:37 Найти цитируемый пост)
Я проверил. Работает ;)

Ага я тоже... КЛАССНО!!!

Автор: Poseidon 14.3.2006, 17:52
Цитата(Snowy @ 13.3.2006, 15:45 Найти цитируемый пост)
я не админ
Я бы добавил "пока" smile

Все, молчу-молчу

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)