Список выделенных в ТС файлов.

Только для тех, кто пишет плагины под Total Commander. Обмен опытом, решение проблем.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Аватара пользователя
SCHMaster
Сообщения: 296
Зарегистрирован: Ср дек 15, 2004 02:32
Откуда: Киев
Контактная информация:

Список выделенных в ТС файлов.

Сообщение SCHMaster »

Сталкнулся с граблями.... При копировании списк файлов из ТС через Clipboard получаю что-то типа
????? - ?????.mp3
????? - ?????.avi
????? - ?????.mpg
????? - ?????.mp3
при условии, что имена файлов на Русском, а раскладка включена Аглицкая. Если включить Русскую раскладку - то все ок.
Подозреваю, что та-же байда будет и в аналогичных случаях с любой не латинской раскладкой.
Мне кажется где-то когда-то я что-то уже читал по этому поводу... Но где, когда и, что самое главное, решение вопроса - хоть убей - НЕ ПОМНЮ!!! Просьба, если кто в курсе - подкиньте идейку :wink:
Хороший юзер - мертвый юзер
Мои работы
c930
Сообщения: 326
Зарегистрирован: Ср дек 15, 2004 06:55

Сообщение c930 »

SCHMaster
А какая у тебя операционка?
И куда ты эти имена вставляешь? Может шрифт не тот?

У меня в моих Win98se Rus такого эффекта я никогда не наблюдал.
Spine
Сообщения: 129
Зарегистрирован: Ср дек 15, 2004 09:20
Откуда: Орша, Беларусь

Re: Список выделенных в ТС файлов.

Сообщение Spine »

2SCHMaster: да без проблем, только собьются нерусскоязычные кодировки, т.е. если ты используешь ещё немецкий или какой другой то ему настанет кирдык...

Код: Выделить всё

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"
"1254"="c_1251.nls"
"1255"="c_1251.nls"
Аватара пользователя
CaptainFlint
Сообщения: 6239
Зарегистрирован: Вт дек 14, 2004 22:34
Контактная информация:

Сообщение CaptainFlint »

Spine
Ну это ты немножко чересчур хватил. :) Вполне достаточно только 1250 и 1252 переопределить таким образом (1251 и так по умолчанию как c_1251.nls определён). А вообще говоря, даже одного только ключа 1252 должно хватить. Вряд ли SCHMaster использует раскладки типа польской. ;)
Аватара пользователя
SCHMaster
Сообщения: 296
Зарегистрирован: Ср дек 15, 2004 02:32
Откуда: Киев
Контактная информация:

Сообщение SCHMaster »

Гм. ОСь - ХРюша. Шрифты? Причем тут шрифты, буфер обмена выдает такую хрень хоть в окно, хоть куда угодно. Использую в MEDIA Show для добавления списка выделенных файлов, т.е. прежде чем попасть в отображаемый список, содержимое буфера обрабатывается в программе (вот тут как раз шТифты вообще не причем :)). И ...
Короче - кусок кода.

Код: Выделить всё

 SendMessage(TCWND, WM_USER+51, 2018, 0);
 Application.ProcessMessages;
 if not ClipBoard.HasFormat(CF_TEXT) then Exit;
 try
 ClipList:=TStringList.Create;
 try
 ClipList.Text:=ClipBoard.AsText;
 except
 ClipList.Free;
 Exit;
 end;
Средствами WinAPI - тоже самое. В первых версиях (повторюсь) я менял кодовую страницу буффера на русскую. С "нашими" юзеряме все было Ок. Буржуи (по большей части азиатской национальности) плакались. Ок, попытался вытянуть локализацию винды из реестра (именно локаклизацию, а не установленные языки или включенный сейчас). Но тут не всегда срабатывало - этого нет (GetSystemDefaultUILanguage) в 9Х - раз. Два - многие юзают аглицкую винду... Плюс иногда вылазили глюки с буфером в системе вообще. Короче гиммор... Пока отключил всякие преобразования.
Ответить