Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
ВнизРегистрация расширения в реестре Найти похожие ветки
← →
aslanbek (2008-10-09 12:08) [0]Мне надо чтоб при нажатии на файл с расширением .auc запускалась моя программа audit.exe. Предполагаю что расширение и программа должны быть зарегистрированы в реесте?
Каким путем это можно сделать?
← →
Сергей М. © (2008-10-09 12:15) [1]http://www.assalom.com/tag/sistemnyj-reestr
← →
Ega23 © (2008-10-09 12:41) [2]Вот где-то когда-то на просторах инета нашёл. На всякий пожарный сохранил. Не проверял. За что купил - за то и продаю:
всё неправильно...
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 ;
Это без иконок без всего.....нужно расставить проверки...вобще сама концепция...писал
от руки...синтаксис не проверял..
← →
aslanbek (2008-10-09 12:49) [3]SPASIBO! ЩАсь проверю,
← →
aslanbek (2008-10-09 12:53) [4]Не берет может в uses надо что то добавить?
← →
Ega23 © (2008-10-09 12:54) [5]
> Не берет может в uses надо что то добавить?
>
Определённо.
← →
aslanbek (2008-10-09 13:00) [6]а что надо добавить подскажите, я новичек
← →
aslanbek (2008-10-09 13:01) [7]кажется нашел Registry
← →
aslanbek (2008-10-09 13:03) [8]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;
Не работает, интересно почему?
← →
Ega23 © (2008-10-09 13:05) [9]
> а что надо добавить подскажите, я новичек
Ну тут всё просто. Компилятор ругается на какую-то строчку, что-то говорит. Например Undeclared identifier "TRegistry"
Становишься на этот самый TRegistryб жмёшь F1. Тебе выдаётся справка, где, в частности, написано имя юнита, в котором данный тип описан.
← →
aslanbek (2008-10-09 13:07) [10]нет с этим разобрался, компилятор не ругается, но при срабатывании ничего ни изменилось, нажимаю на файлы с расширением ".aud", не распознается.
← →
Сергей М. © (2008-10-09 13:08) [11]
> Не работает, интересно почему?
>
> RegisterExtension("AUD", "С:\чер-то что и сбоку бантик\table_form_100.00.exe")
← →
aslanbek (2008-10-09 13:16) [12]RegisterExtension(".AUD", "C:\table_form_100.00\table_form_100.00.exe")
все равно не получается
← →
aslanbek (2008-10-09 13:19) [13]я понял свою ошибку "AUD" без точки, какой же не внимательный я, Спасибо вам огромное Ega23 и Сергей
← →
aslanbek (2008-10-09 13:20) [14]работает СПАСИБО
← →
Сергей М. © (2008-10-09 13:20) [15]
> aslanbek (09.10.08 13:16) [12]
Не быть тебе, солдат, генералом - читать не умеешь и не хочешь)
Сравни
RegisterExtension("AUD",
и
RegisterExtension(".AUD",
найди отличия)
← →
aslanbek (2008-10-09 13:28) [16]))
← →
Ega23 © (2008-10-09 13:30) [17]
> какой же не внимательный я,
Не переживай, это только первые 20 лет тяжело... :)
← →
Anatoly Podgoretsky © (2008-10-09 13:41) [18]> Ega23 (09.10.2008 13:30:17) [17]
50, а потом на пенсию
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c