Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ассоциация с файлами 
:(
    Опции темы
romanzi
Дата 21.4.2011, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.3.2011

Репутация: нет
Всего: нет



Код ассоциации с файлами:

Код
procedure TForm2.Button15Click(Sender: TObject);
var s:string;
Reg:TRegistry;

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

  Reg.OpenKey('.dev\OpenWithProgids\', true);
  Reg.WriteString('TestApplication.txt', '');

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

  Reg.OpenKey('\TestApplication.txt\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;


Он работает! Но.что бы ассоциация действовала её нужно включить через "Свойство" (то-есть в самых подходящих программах нужно выбрать программу,на которую я поставил ассоциацию). smile 
PM MAIL   Вверх
romanzi
Дата 21.4.2011, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.3.2011

Репутация: нет
Всего: нет



При вызове процедуры всё работает чётко, как чупакабра! smile 
Но проблема заключается в том,что после выполнения процедуры,надо  выбрать программу которую я занёс в реестр,а по умолчанию остаётся та,которой открывалась, например - я сделал ассоциацию на txt, после процедуры файлы всё равно открываются блокнотом, и нужно провести пару операций в свойствах,что бы открывало через нужную программу.

Мне нужно сделать так,что бы этого не нужно было делать.а файлы сразу открывались в нужной программе!
PM MAIL   Вверх
MetalFan
Дата 22.4.2011, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(romanzi @  21.4.2011,  20:59 Найти цитируемый пост)
и нужно провести пару операций в свойствах

каких операция? в каких свойствах?
1. 
Цитата(romanzi @  21.4.2011,  17:47 Найти цитируемый пост)
Reg.OpenKey('.dev\OpenWithProgids\', true);

убери '\OpenWithProgids\'

2. Попробуй выставить TRegistry.LazyWrite в false.


Это сообщение отредактировал(а) MetalFan - 22.4.2011, 11:02


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.