On-line: PSP, tnsr2, гостей 0. Всего: 2 [подробнее..]
АвторСообщение



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.01.06 09:34. Заголовок: Переключение на русскую раскладку клавиатуры?


Clipper5.3 WinXP.
Как сделать, чтобы при входе в прогу на Clippere раскладка автоматически становилась русской.
Руссификатор Kb16.com (переключение между раскладками CTRL+SHIFT).
СПАСИБО.

Спасибо: 0 
Профиль
Ответов - 15 [только новые]


постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.01.06 15:50. Заголовок: Re:


А почему используется руссификатор, а не средства самой операционки?
Если бы вы использовали средства операционки, то там, если не ошибаюсь, используется программа KEYB. Менять ее установки можно с помощью мультиплексного прерывания 2Fh. Для этого придется написать функцию на ассемблере.

Спасибо: 0 
Профиль
администратор




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.01.06 17:48. Заголовок: Re:


Григорьев Владимир
KB16 это по ходу в XP ;)
KEYB - в 98


Спасибо: 0 
Профиль
постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.01.06 19:34. Заголовок: Re:


Тогда наверное надо в обоих случаях писать программу на ассемблере для мультеплексного прерывания.

Спасибо: 0 
Профиль
постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.01.06 19:41. Заголовок: Re:


Любопытно, что когда запускаешь команду
C:\>KB16 /?
выдает подсказку, где указано в качестве имени программы KEYB, а именно
KEYB [xx[,yyy][,drive и т.д.
Зачем было менять имя модуля?

Спасибо: 0 
Профиль
постоянный участник


Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 27.01.06 21:14. Заголовок: Re:


Я должен признаться. что я несколько поспешил с указанием на прерывание 2Fh. Оказывается функция 0AD83h прерывания 2Fh лишь позволяет установить так называемый "country flag" для программы KEYB. Она не переключает раскладку клавиатуры. Может быть есть какие-то недокументированные функции прерывания 2Fh для KEYB. Однако в моем руководстве Microsoft по DOS версии 5 ничего о соответствующих функциях не говорится.
Я пробовал такой код, если кому-то это интересно. (TASM 4.01)

IDEAl

MODEL TINY, CPP

CODESEG

STARTUPCODE

call GetCountryFlag
cmp al,00
jne @@10
mov al,0FFh
jmp short @@20
@@10:
mov al,00h
@@20:
call SetCountryFlag,ax
ret

PROC SetCountryFlag
ARG @@nCountryFlag
mov bl,[byte @@nCountryFlag]
mov ax,0AD82h
int 2Fh
sbb ax,ax
inc ax
ret
ENDP SetCountryFlag

PROC GetCountryFlag
mov ax,0AD83h
int 2Fh
xor ah,ah
mov al,bl
ret
ENDP GetCountryFlag

END @Startup

Эта тестовая программа при каждом запуске меняет country flag.
Может быть в Windows XP надо просто что-то изменить в реестре? Честно скажу, я не знаю.

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.02.06 00:03. Заголовок: Re:


2 sasha9: тривиальное решение: в настройках виндовса поставить русскую арскладку по-умолчанию. тогда и русский всегда будет, и в ДОС-программах будет загружаться переключался (левые ctrl+shitf / правые ctrl+shift). это верно для всех nt (winnt, 2000, xp)

Спасибо: 0 



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 08.02.06 09:29. Заголовок: Re:


2 sergeyy. А ВЫ попробуйте, работает ли Ваше решение.

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 17.02.06 20:43. Заголовок: Re:


у меня на winNT4, win2000, winXP работает

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 17.02.06 20:54. Заголовок: Re:


даже без kb16.com в autoexec.nt. Только переключение раскладок другое, чем в winapi:
правый ctrl+правый shift = русская раскладка
левый ctrl+левый shift = аглийская
. если ничто не помогает, можно попробовать в "панель управления->язык и стандарты" нажать "задать умолчание" с русским языком.. это и в winnt есть, а вот в XP -- не помню..
. так же для виндусовских программ, которые вместо русских символов отображают "кракозябры" (и откуда это слово?), можно попробовать в разделе реестра hkey_local_machine\system\currentcontrolset\control\nls\codepage свойству 1252 задать значение c_1252.nls
(это я вообще, помогло icq lite, power designer, к DOS приложениям не относится)

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 17.02.06 20:55. Заголовок: Re:


то есть, свойству 1252 задать значение c_1251.nls
:0

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.02.06 16:35. Заголовок: Re:


сегодня понадобилось настроить переключение на русскую раскладку в ДОС-приложениях (в клипперных) для ОС winxp sp2.
я сделал как написано здесь (а именне:
. добавил в autoexec.nt строку с kb16.com ru и
. HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Control->KeyboardLayout->DosKeybCodes, изменил значение ключа 00000409 в папке на ru
) , но всё равно правый ctrl+shift не включает русскую раскладку.. хотя на win2000 sp4 такое работает
остаётся два способа:
. либо сделать русскую раскладку по-умолчанию с настройках языка (тогда всё работает и без перечисленных настроек)
. либо перед запуском программы принудительно включать русскую раскладку (надо только прогу написать, кот. переключает раскладку), а переключалку "втокнуть" то ли в bat-файл, то ли в autoexec.nt..

вопрос: у кого-нибудь есть идеи, как в winxp настроить переключение раскладок

Спасибо: 0 
Профиль
администратор




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.02.06 17:14. Заголовок: Re:


_sergey пишет:

 цитата:
но всё равно правый ctrl+shift не включает русскую раскладку



у меня работает на winxp sp2 , подозреваю что дело в версии MS Office , там ставится своя переключалка.

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.02.06 17:58. Заголовок: Re:


вот это нда.. я не тот autoexec.nt испрвлял (от прошлой ОС осталась директория, в ней я и исправлял). а так всё работает и в xp!

Спасибо: 0 
Профиль
администратор




Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.02.06 18:08. Заголовок: Re:


_sergey
бывает ;)

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 26.02.06 19:56. Заголовок: Re:


Dima пишет:

 цитата:
_sergey
бывает ;)


ды ну, вообще..
;-)

Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 89
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет