Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / API. Выводить на форме текущий режим клавиатуры ru / en ? / 24 сообщений из 24, страница 1 из 1
19.01.2004, 13:30
    #32380185
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Форма занимает весь экран и он не видит в каком режиме клавиатура (в русском или латинском). Как вывести , скажем в надписи текущий режим? При переходе на другой язык это в форме также должно обновиться.
...
Рейтинг: 0 / 0
19.01.2004, 13:40
    #32380211
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Это важно.
...
Рейтинг: 0 / 0
19.01.2004, 13:54
    #32380250
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Код: plaintext
1.
2.
3.
Private Declare Function GetThreadLocale Lib  "kernel32"  () As Long
Public Function GetLCID() As Long
    GetLCID = GetThreadLocale()
End Function
...
Рейтинг: 0 / 0
19.01.2004, 14:01
    #32380267
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
наврал. это не то
...
Рейтинг: 0 / 0
19.01.2004, 14:04
    #32380275
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
2 Senin Viktor
Ничё Ничё
...
Рейтинг: 0 / 0
19.01.2004, 14:04
    #32380276
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
'parameters for api's
Const KL_NAMELENGTH As Long =  9 
'the language constants
Const LANG_EN_US As String = "00000409"
Const LANG_RUS As String = "00000419"

'api's to adjust the keyboardlayout
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long

Public Sub CurrentLayout()
Dim strLocId As String 'used to retrieve current KeyboardLayout
 strLocId = String(KL_NAMELENGTH,  0 )
  
  GetKeyboardLayoutName strLocId
  If strLocId =  "00000419 " Then
  MsgBox  "Русский" 
  Else
  MsgBox  "Нерусский" 
  End If
End Sub
...
Рейтинг: 0 / 0
19.01.2004, 14:07
    #32380282
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Только непонятно, как вы собираетесь ловить переключение раскладки.
Разве что по таймеру..
...
Рейтинг: 0 / 0
19.01.2004, 14:12
    #32380295
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
2 ЛП
Именно по Timer.
А что? Что то не так?

2 Alexander G
Сейчас испытаю.
...
Рейтинг: 0 / 0
19.01.2004, 14:14
    #32380299
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
2Eternal: слушай, а что тебе (вернее твоим пользователям) конкретно надо: может им надо набирать текст в твоей форме токо по русски, тогда делаешь что при переходе в твою форму автоматом раскладка переключась в русский язык и все, не надо ни каких таймеров и пользователь париться не будет, что и как у него там включено.
...
Рейтинг: 0 / 0
19.01.2004, 14:26
    #32380345
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
2 SergeySV

Да в том то и дело , что пользователь в форме вводит и на русском и на английском.

Хорошая мысль . Переключать раскладку при открытии такой формы в русский. Как это сделать? Тоже нужная вещь.

2 Alexander G
Проверил. Работает. И по таймеру тоже отображается. Спасибо тебе. Уже в который раз выручаешь!
Я вот только не понял . Запихнул объявление API ф-и в стандартный модуль и изменил private на public. Не работало. Показывал каждый раз "Нерусский". А вот запихнул объявление в модуль класса к форме , все запахало. Ну да ладно , главное работает.
Как же раскладку в русский принудительно перевести при загрузке формы?
...
Рейтинг: 0 / 0
19.01.2004, 14:30
    #32380354
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Да таже функция что и выше, токо SetKeyboardLayoutName
...
Рейтинг: 0 / 0
19.01.2004, 14:32
    #32380359
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
ой, извиняй, ща уточню
...
Рейтинг: 0 / 0
19.01.2004, 14:36
    #32380369
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Не работает.
...
Рейтинг: 0 / 0
19.01.2004, 14:36
    #32380370
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Вот:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Declare Function LoadKeyboardLayout Lib  "user32"  Alias  "LoadKeyboardLayoutA"  _
(ByVal pwszKLID As String, ByVal flags As Long) As Long
Private Const KLF_ACTIVATE =  1 

Public Sub SetLanguage(ByVal s As String)
  Select Case UCase(Left(s,  1 ))
     Case  "R" 
       LoadKeyboardLayout  "00000419 ", KLF_ACTIVATE
     Case  "U" 
       LoadKeyboardLayout  "00000422 ", KLF_ACTIVATE
     Case  "E" 
      LoadKeyboardLayout  "00000409 ", KLF_ACTIVATE
    Case Else
  End Select
End Sub

Private Sub Command1_Click()
   ' Вызывается соответственно с параметром  "R" ,  "U"  или  "E" 
   SetLanguage ( "R" )
End Sub

...
Рейтинг: 0 / 0
19.01.2004, 14:38
    #32380373
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Наверно эта нужна ф-я , SetKeyboardState ?
...
Рейтинг: 0 / 0
19.01.2004, 14:43
    #32380380
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
2 SergeySV

Работает.Спасибо!

А что такое "U" , Украина что ли?
...
Рейтинг: 0 / 0
19.01.2004, 14:46
    #32380391
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
ага
...
Рейтинг: 0 / 0
19.01.2004, 14:54
    #32380412
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Хорошая мысль . Переключать раскладку при открытии такой формы в русский. Как это сделать? Тоже нужная вещь.


У элементов формы есть такое свойство KeyboardLanguage

Из справки (Access XP)
Код: plaintext
1.
2.
KeyboardLanguage Property
You can use the KeyboardLanguage property to specify or determine 
the keyboard language on entry into a control.
...
Рейтинг: 0 / 0
19.01.2004, 15:00
    #32380430
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Ммм, ну чтож, хорошая вещь однако
...
Рейтинг: 0 / 0
19.01.2004, 15:15
    #32380479
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Что то я не совсем въехал в KeyboardLanguage . Нафиг он нужен?
...
Рейтинг: 0 / 0
19.01.2004, 15:19
    #32380483
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Он нужен, чтобы язык переключался при входе в поле.
...
Рейтинг: 0 / 0
19.01.2004, 15:23
    #32380492
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Позволю себе дополнить ответ Владимир Саныч

Он нужен, чтобы язык автоматически переключался при входе в поле.
...
Рейтинг: 0 / 0
19.01.2004, 15:27
    #32380505
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
Он нужен, чтобы язык не заплетался при входе в поле.
...
Рейтинг: 0 / 0
19.01.2004, 15:28
    #32380507
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
API. Выводить на форме текущий режим клавиатуры ru / en ?
2 ВС
А.

Но скажем в моей ситуации это не нужно. Юзер в поле вперемешку вводит и на русском и на ангельском. Часто ему приходиться переключаться с одного языка на другой, набирая текст в одном поле.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / API. Выводить на форме текущий режим клавиатуры ru / en ? / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]