Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1142276599
Ломброзо
2006-03-13 22:03
2006.04.02
Как получить список сервисов...


1-1141291631
oleg_
2006-03-02 12:27
2006.04.02
почему может не работать наезд на объект немодального окна


2-1142180300
asd
2006-03-12 19:18
2006.04.02
Почему в ActionMainMenuBar нельзя сменить Color?


8-1130610340
Volf_555
2005-10-29 22:25
2006.04.02
Как разрезать рисунок?


2-1142826218
Gydvin
2006-03-20 06:43
2006.04.02
AND, OR в ASMe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский