Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » GetCommandLine и Total Commander

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
такой нюанс - пишу прогу, в ней использую функцию GetCommandLine() - получение командной строки (все это под вин2к сп4) - так вот когда я поставил прогу в панель быстрого запуска Тотала и кидаю на нее файлы драг-н-дропом - то русские буквы в имени-пути отображаются кодами типа E5B6 и тд. Проверил некоторые другие программы - такая же фигня, другие - норма (они, видимо, используют argc[], argv[]). Файлы тем не менее открываются нормально - только имена их в списке последних все же с кодами вместо русских букв.
Если же я драг-н-дропаю файл из Тотала на ЭТУ же (свою) программу в QuickLanch-е (или еще где-либо), то все ОК, имя в порядке - с русскими буквами.
 
Возникает вопрос - чего за фигня? Может у кого мысли есть?
Причем в ХР при всех тех же условиях - все ОК.
Где я недорабатываю?

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 04:47 14-04-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Потому что Тотал (неизветсно по какой причине делает GetShortPathName, то есть переводит путь в досовский, а там вместо русских букв какая то лажа. Только что проверил при помощи  

Цитата:
 
GetShortPathName('C:\Мои документы',PChar(cmd),100);
 

 
в смд находился текст С:\C316~ врогде того, а когда ты драгаешь средствами проводника, то есть он сам ресолвит путь то все нормуль. Кстати если путь примерно такой С:\Мои документы Cool, то в смд будет С:\Cool.
 
Интересно, тольлко что полсе переименоваия мои док в мои док кул а потом обратно, теперь возвращается правильно длинное имя. Короче если файл с русскими буквами которые отображаются неверно переименовать, а потом опять вернуть все на место, то все нормально работает (ааааааааааа кажется понял, я запретил винде генерировать 8.3 имена, поэтому она их и не может после переименования создать). Так что все равно глюк тотала. Он почему то перед передачей делает из пути короткий. А другие программы скорее всего делают getfullpathname из полученного краткого, сейчас проверю. Не работает Хотя возможно потому, что у меня отключена данная функция. Проверил на другой системе, тоже не работает . Короче в чем твоя трабла ясно, теперь надо подумать как реализовать решение. Я пробовал осуществлять переходы в командной строке, так вот переходы в директории возможны как по короткому пути так и по длиному, хотя

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 09:47 14-04-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
во-первых, спасибо за ответ!
 
во-вторых, смотрю исходник Bred-а, там указатель от GetCommandLine() обрабатывается GetFullPathName() и вроде ехешник имена получает правильно, с русскими буквами(отображает в titlebar). Правда исходник на 215, а ехешник вроде 218.
Я тоже попробовал поиграть с GetFullPathName() - с первого подхода все равно не вышло.
Смотрю еще несколько исходников на АСМЕ и С - там нет GetFullPathName() и трабл такой же.
Думаю еще поковырять GetFullPathName().
 
Ты, кстати, откуда?
Не из Хабаровска, случайно? ))))

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 05:49 15-04-2004
vito333



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Гислер ответил, что это фича!
не коды в строке, а короткий путь в CommandLine.
Сказал - юзай Ctrl-Enter или Ctrl-Shift-Enter.
А я мышой люблю ).

Всего записей: 3324 | Зарегистр. 13-05-2002 | Отправлено: 06:05 16-04-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » GetCommandLine и Total Commander


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru