![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Русские имена каталогов и 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]Кавычки не забыл поставить в реестре?