Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизСвязь расширения с программой. Корректная передача пути файла. Найти похожие ветки
← →
antonioxxx (2006-03-18 03:41) [0]Здравствуйте, господа профессионалы!
Разрешите обратиться к вам с таким вопросом. Я написал программку и хочу связать с ней расширение файлов "*.001".
Для этого использую следующй код:reg:=TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.LazyWrite:=false;
reg.OpenKey(".001\shell\open\command",true);
reg.WriteString("",Application.ExeName+" %1");
reg.CloseKey;
reg.OpenKey(".001\DefaultIcon",true);
reg.WriteString("",Application.ExeName+",0");
reg.CloseKey;
reg.free;
Имя файла в программу передается через параметр:If ParamStr(1)<>"" Then
Begin
E001.Text:=ParamStr(1);
Eres.Text:=ExtractFilePath(ParamStr(1));
End;
Связь между программой и расширением таким образом удается осуществить корректно, однако когда программа загружается по нажатии, скажем, на файле "1.001", то в полях Е001 и Eres путь к нему отражается в формате коротких имен, например:
C:\PROGRA~1\Borland\Delphi5\Projects\PROGJOI~1\WITHSE~1\1.001
Можно ли как-либо способом исправить это таким образом, чтобы в соответствующих полях указывался полные путь к файлу в формате Windows? Может быть ассоциацию файлов нужно производить как-то иначе? Или по другому передавать в программу имя файла?..
Заранее благодарю всех, кто откликнется! :-)
← →
Германн © (2006-03-18 04:06) [1]Кавычки "спасут отца русской демократии", Имхо.
← →
antonioxxx (2006-03-18 09:49) [2]>Германн:
А куда их ... тут подевать-то? :-)
← →
tesseract © (2006-03-18 12:22) [3]для заданий длинных имён файлов они должны идти в кавычках
"c:\program files\.....\minekampf.exe" -run
← →
DiamondShark © (2006-03-18 13:07) [4]
> reg.WriteString("",Application.ExeName+" %1");
reg.WriteString("",Application.ExeName+" "%1"");
← →
antonioxxx © (2006-03-18 13:21) [5]Ага, все, спасибо огрномное, разобрался!!! :))
>DiamondShark:
Только на самом деле, в реестр нужно прописать и путь к программе в кавычках, как выяснилось :), т.е.reg.WriteString("","""Application.ExeName+"" "%1"");
Просто команда "%1" не помогает :-)
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.043 c