Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.01.06 09:34. Заголовок: Переключение на русскую раскладку клавиатуры?
Clipper5.3 WinXP. Как сделать, чтобы при входе в прогу на Clippere раскладка автоматически становилась русской. Руссификатор Kb16.com (переключение между раскладками CTRL+SHIFT). СПАСИБО.
|
|
|
Ответов - 15
[только новые]
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.01.06 15:50. Заголовок: Re:
А почему используется руссификатор, а не средства самой операционки? Если бы вы использовали средства операционки, то там, если не ошибаюсь, используется программа KEYB. Менять ее установки можно с помощью мультиплексного прерывания 2Fh. Для этого придется написать функцию на ассемблере.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.01.06 17:48. Заголовок: Re:
Григорьев Владимир KB16 это по ходу в XP ;) KEYB - в 98
|
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.01.06 19:34. Заголовок: Re:
Тогда наверное надо в обоих случаях писать программу на ассемблере для мультеплексного прерывания.
|
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.01.06 19:41. Заголовок: Re:
Любопытно, что когда запускаешь команду C:\>KB16 /? выдает подсказку, где указано в качестве имени программы KEYB, а именно KEYB [xx[,yyy][,drive и т.д. Зачем было менять имя модуля?
|
|
|
|
| постоянный участник
|
Не зарегистрирован
Зарегистрирован: 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 надо просто что-то изменить в реестре? Честно скажу, я не знаю.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.02.06 00:03. Заголовок: Re:
2 sasha9: тривиальное решение: в настройках виндовса поставить русскую арскладку по-умолчанию. тогда и русский всегда будет, и в ДОС-программах будет загружаться переключался (левые ctrl+shitf / правые ctrl+shift). это верно для всех nt (winnt, 2000, xp)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 08.02.06 09:29. Заголовок: Re:
2 sergeyy. А ВЫ попробуйте, работает ли Ваше решение.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 17.02.06 20:43. Заголовок: Re:
у меня на winNT4, win2000, winXP работает
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 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 приложениям не относится)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 17.02.06 20:55. Заголовок: Re:
то есть, свойству 1252 задать значение c_1251.nls :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 настроить переключение раскладок
|
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.02.06 17:14. Заголовок: Re:
_sergey пишет: цитата: | но всё равно правый ctrl+shift не включает русскую раскладку |
| у меня работает на winxp sp2 , подозреваю что дело в версии MS Office , там ставится своя переключалка.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.02.06 17:58. Заголовок: Re:
вот это нда.. я не тот autoexec.nt испрвлял (от прошлой ОС осталась директория, в ней я и исправлял). а так всё работает и в xp!
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.02.06 18:08. Заголовок: Re:
_sergey бывает ;)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 26.02.06 19:56. Заголовок: Re:
Dima пишет: ды ну, вообще.. ;-)
|
|
|
|