![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Регистрация расширения в реестре
aslanbek © (2008-10-09 12:08:00)Мне надо чтоб при нажатии на файл с расширением .auc запускалась моя программа audit.exe. Предполагаю что расширение и программа должны быть зарегистрированы в реесте?
Каким путем это можно сделать?
Anatoly Podgoretsky (2008-10-09 13:41:00) [1]> Ega23 (09.10.2008 13:30:17) [17]
50, а потом на пенсию
Ega23 (2008-10-09 13:30:00) [2]
> какой же не внимательный я,
Не переживай, это только первые 20 лет тяжело... :)
aslanbek (2008-10-09 13:28:00) [3]))
Сергей М. (2008-10-09 13:20:00) [4]
> aslanbek (09.10.08 13:16) [12]
Не быть тебе, солдат, генералом - читать не умеешь и не хочешь)
Сравни
RegisterExtension('AUD',
и
RegisterExtension('.AUD',
найди отличия)
aslanbek (2008-10-09 13:20:00) [5]работает СПАСИБО
aslanbek (2008-10-09 13:19:00) [6]я понял свою ошибку 'AUD' без точки, какой же не внимательный я, Спасибо вам огромное Ega23 и Сергей
aslanbek (2008-10-09 13:16:00) [7]RegisterExtension('.AUD', 'C:\table_form_100.00\table_form_100.00.exe')
все равно не получается
Сергей М. (2008-10-09 13:08:00) [8]
> Не работает, интересно почему?
>
> RegisterExtension('AUD', ' С:\чер-то что и сбоку бантик\table_form_100.00.exe')
aslanbek (2008-10-09 13:07:00) [9]нет с этим разобрался, компилятор не ругается, но при срабатывании ничего ни изменилось, нажимаю на файлы с расширением '.aud', не распознается.
Ega23 (2008-10-09 13:05:00) [10]
> а что надо добавить подскажите, я новичек
Ну тут всё просто. Компилятор ругается на какую-то строчку, что-то говорит. Например Undeclared identifier 'TRegistry'
Становишься на этот самый TRegistryб жмёшь F1. Тебе выдаётся справка, где, в частности, написано имя юнита, в котором данный тип описан.
aslanbek (2008-10-09 13:03:00) [11]Procedure RegisterExtension(const Extension, AppName : string ) ;
begin
with TRegistry.Create do
try
RootKey := HKEY_CLASSES_ROOT ;
LazyWrite := False ;
try
OpenKey('.'+Extension,True) ;
WriteString('',AppName) ;
CloseKey ;
CreateKey(AppName) ;
CreateKey(AppName+'\Shell') ;
OpenKey(AppName+'\Shell\Open',True) ;
WriteString('','&Open') ;
CloseKey ;
OpenKey(AppName+'\Shell\Open\Command',True) ;
WriteString('','C:\table_form_100.00\'+' %1') ;
except
Raise ;
end ;
finally
CloseKey ;
Free ;
end ;
end ;
procedure TForm1.Button1Click(Sender: TObject);
begin
RegisterExtension('.AUD', 'table_form_100.00.exe')
end;
Не работает, интересно почему?
aslanbek (2008-10-09 13:01:00) [12]кажется нашел Registry
aslanbek (2008-10-09 13:00:00) [13]а что надо добавить подскажите, я новичек
Ega23 (2008-10-09 12:54:00) [14]
> Не берет может в uses надо что то добавить?
>
Определённо.
aslanbek (2008-10-09 12:53:00) [15]Не берет может в uses надо что то добавить?
aslanbek (2008-10-09 12:49:00) [16]SPASIBO! ЩАсь проверю,
Ega23 (2008-10-09 12:41:00) [17]Вот где-то когда-то на просторах инета нашёл. На всякий пожарный сохранил. Не проверял. За что купил - за то и продаю:
всё неправильно...
Procedure RegisterExtension(const Extension, AppName : string ) ;
begin
with TRegistry.Create do
try
RootKey := HKEY_CLASSES_ROOT ;
LazyWrite := False ;
try
OpenKey('.'+Extension,True) ;
WriteString('',AppName) ;
CloseKey ;
CreateKey(AppName) ;
CreateKey(AppName+'\Shell') ;
OpenKey(AppName+'\Shell\Open',True) ;
WriteString('','&Open') ;
CloseKey ;
OpenKey(AppName+'\Shell\Open\Command',True) ;
WriteString('',[Полный путь к приложению]+' %1') ;
except
Raise ;
end ;
finally
CloseKey ;
Free ;
end ;
end ;
Это без иконок без всего.....нужно расставить проверки...вобще сама концепция...писал
от руки...синтаксис не проверял..
Сергей М. (2008-10-09 12:15:00) [18]http://www.assalom.com/tag/sistemnyj-reestr