Главная страница
    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.04 c
2-1142577578
worldmen
2006-03-17 09:39
2006.04.02
Прога D5 не печатает под XP


1-1141168205
markers
2006-03-01 02:10
2006.04.02
Canvas &amp;&amp; ListBox


3-1139309659
WellSlava
2006-02-07 13:54
2006.04.02
сохранение отчета Fast Report в БД


11-1123695011
raskin
2005-08-10 21:30
2006.04.02
KOL - 2.10 - KeyPreview


1-1140179067
rolex
2006-02-17 15:24
2006.04.02
Как сделать нерабочими CheckBox ы и Header в ListView?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский