Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Русские имена каталогов и ParamStr [D7, WinXP]


Sergei0 ©   (2006-04-29 01:57:00) 

Подскажите пожалуйста не могу понять почему так выходит:

Зарегистрировал свой тип файла. При нажатии на файл  запускается моя программа. Файл может находиться где у годно в том числе и в русских директориях. И если файл в русской директории то ParamStr(1) возвращает абру-кадабру а мне надо сделать:
AssignFile(file, ParamStr(1));

Заранее благодарю!


Styx_   (2006-05-02 16:39:00) [1]

А что за переменная %L и где бы найти описание других подобных фокусов? В частности, хотелось бы, чтобы передавалось короткое имя файла - а то приходится использовать .CMD, а в нём писать %~s1


Sergei0   (2006-05-02 11:36:00) [2]


> %L


Поменял в реестре %1 на %L и все стало нормально.
Всем ОГРОМНОЕ СПАСИБО!


Anatoly Podgoretsky   (2006-05-01 12:19:00) [3]

CharToOEM


tesseract   (2006-05-01 09:59:00) [4]


> Если можно поподробней!

По умолчанию в консоли установлен cp866 (для русских версия соотвественно). А ты работаешь в cp1251.
Соответсвенно F1 -> ANSItoOEM


Экспериментатор   (2006-04-29 15:25:00) [5]

Вместо %1 надо %L
и тогда будет ОК


Sergei0   (2006-04-29 12:50:00) [6]


> в oem кодировку переводить не пробовал?


Если можно поподробней!


Sergei0   (2006-04-29 12:49:00) [7]


> Кавычки не забыл поставить в реестре?


регистрировал тип файла так:
ext: = 'atm' ;
FileName: = Application.ExeName;

var
 reg: TRegistry;
begin
 reg:=TRegistry.Create;
 with reg do
 begin
   RootKey:=HKEY_CLASSES_ROOT;
   OpenKey('.'+ext,True);
   WriteString('',ext+'file');
   CloseKey;
   CreateKey(ext+'file');
   OpenKey(ext+'file\DefaultIcon',True);
   WriteString('',FileName+',0');
   CloseKey;
   OpenKey(ext+'file\shell\open\command',True);
   WriteString('',FileName+' " %1"');
   CloseKey;
   Free;
 end;

Может что не так?


tesseract   (2006-04-29 11:46:00) [8]


> абру-кадабру а мне надо сделать:

в oem кодировку переводить не пробовал?


Германн   (2006-04-29 02:40:00) [9]

Кавычки не забыл поставить в реестре?


Наверх

Титульная страница Поиск, карта сайта Написать письмо