Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.10;
Скачать: CL | DM;

Вниз

Почему?   Найти похожие ветки 

 
Diana   (2002-01-30 21:50) [0]

Регистрация расширений файла сделала, но почему при открытий этого документа, запускается только моя программа, а документ так и не загружается?


 
Фэ ©   (2002-01-30 22:03) [1]

А как насчет параметров ?


 
Diana   (2002-01-30 22:26) [2]

to Фэ:
А нельза ли примерчика?


 
Фэ ©   (2002-01-30 23:11) [3]

Регистрация расширения .mym

Несколько фишек:
1.Создается секция /.mym которая ссылается на секцию MyData
2.Вследствии возможности изменения пользователем каталога приложения оно регистрируется при каждом запуске как ParamStr(0) и ему передается файл как параметр %1
Ваше приложение обязано проверять корректность передачи через ParamCount и факт наличия файла.
Если есть вероятность одновременного открытия одного и того же файла в одном приложении
или открытие его в одновременно запущенных приложениях, то и это надо проверить и, возможно, исключить.
Через mutex проще.
3.Регистрируется иконка приложения


Uses Registry;


procedure TSFormCreate;
var
Reg:TRegistry;
begin
Reg:=nil;
try
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CLASSES_ROOT;
Reg.OpenKey("\.mym",True);
Reg.WriteString("", "MyData");
Reg.CloseKey;
Reg.OpenKey("\MyData",True);
Reg.WriteString("", "My Ext");
Reg.CloseKey;
Reg.OpenKey("\MyData\Shell\Open\Command",True);
Reg.WriteString("",ParamStr(0)+" %1");
Reg.CloseKey;
Reg.OpenKey("\MyData\DefaultIcon",True);
Reg.WriteString("",ParamStr(0)+", 1");
Reg.CloseKey;
Reg.Free;
except
if Assigned(Reg) then Reg.Free;
end;
end;


 
ilysha ©   (2002-03-14 14:38) [4]

Пускай запоздавшее, но все-таки очень важная поправка к ответу Фэ

Вариант Фэ подходит только для случаев с отсутствием длинных имен файлов. Система просто обрежет имена до формата 8.3 MS-DOS.

Для Windows больше подходит следующий вариант:

Reg.OpenKey("\MyData\Shell\Open\Command", True);
Reg.WriteString("", """+ ParamStr(0)+ "" "%1"");
Reg.CloseKey;
Reg.OpenKey("\MyData\DefaultIcon", True);
Reg.WriteString("", """+ ParamStr(0)+ "", 1");


Как видно отличие только одно - знаки "".



Страницы: 1 вся ветка

Текущий архив: 2002.06.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-30867
MViper
2002-05-29 16:47
2002.06.10
Работа с dll


14-30967
Ajax
2002-05-05 10:24
2002.06.10
Linux


1-30910
MaximatorVeter
2002-05-30 11:13
2002.06.10
Сдвиг блока исходного текста по горизонтали.


14-30987
Stan123
2002-05-04 22:52
2002.06.10
Где можно скачать русские mp3-Files?


1-30884
allrussia
2002-05-30 04:27
2002.06.10
Узнать пути к специальным папкам