Страница: 1 |
Страница: 1 |
Вопрос: Раскладка клавы...
Добавлено: 11.08.07 18:31
Автор вопроса: K-Unit90 | Web-сайт:
Приведите полный пример на ВБ6 того, как сменить расскладку клавиатуры для всех программ и оконо в Виндоус, а то у меня меняется только в моей программе... :(
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #1
Добавлено: 19.08.07 20:20
А в какой программе ты видел, чтобы раскладка клавиатуры менялась для всех окон Windows?
Вряд ли получится сменить раскладку для всех окон сразу. Можешь только следить за текущей раскладкой клавиатуры и менять её на русскую, как только она изменилась. Или найти где хранится учёт раскладки клавиатуры для каждого окна, и поменять все на русскую
Номер ответа: 2
Автор ответа:
K-Unit
Вопросов: 0
Ответов: 2
Профиль | | #2
Добавлено: 20.08.07 21:10
Ну смотрите... Я допустим не могу, как обычно переключить раскладку, т.к. глючит виндовс, а мне надо сделать программу, которая будет в трэе и при нажатии определенных горячих клавишь переключит в активном окне раскладку, а не в окне самой проги... Вот сижу и парюсь...)))
Номер ответа: 3
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #3
Добавлено: 21.08.07 00:49
'This fucntion changes the locale and as a result, the keyboardlayout gets adjusted
'parameters for api's
Const KL_NAMELENGTH As Long = 9 'length of the keyboardbuffer
Const KLF_ACTIVATE As Long = &H1 'activate the layout
'the language constants
Const LANG_NL_STD As String = "00000413"
Const LANG_EN_US As String = "00000409"
Const LANG_DU_STD As String = "00000407"
Const LANG_FR_STD As String = "0000040C"
'api's to adjust the keyboardlayout
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
Public Function SetKbLayout(strLocaleId As String) As Boolean
'Changes the KeyboardLayout
'Returns TRUE when the KeyboardLayout was adjusted properly, FALSE otherwise
'If the KeyboardLayout isn't installed, this function will install it for you
On Error Resume Next
Dim strLocId As String 'used to retrieve current KeyboardLayout
Dim strMsg As String 'used as buffer
Dim lngErrNr As Long 'receives the API-error number
'create a buffer
strLocId = String(KL_NAMELENGTH, 0)
'retrieve the current KeyboardLayout
GetKeyboardLayoutName strLocId
'Check whether the current KeyboardLayout and the
'new one are the same
If strLocId = (strLocaleId & Chr(0)) Then
'If they're the same, we return immediately
SetKbLayout = True
Else
'create buffer
strLocId = String(KL_NAMELENGTH, 0)
'load and activate the layout for the current thread
strLocId = LoadKeyboardLayout((strLocaleId & Chr(0)), KLF_ACTIVATE)
If IsNull(strLocId) Then 'returns NULL when it fails
SetKbLayout = False
Else 'check again
'create buffer
strLocId = String(KL_NAMELENGTH, 0)
'retrieve the current layout
GetKeyboardLayoutName strLocId
If strLocId = (strLocaleId & Chr(0)) Then
SetKbLayout = True
Else
SetKbLayout = False
End If
End If
End If
End Function
Private Sub Form_Load()
'change the current keybour layout to 'English - US'
SetKbLayout LANG_EN_US
End Sub
Господа пионеры, качайте Api-Guide
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 21.08.07 06:05
Я ошибаюсь, или эта программа меняет раскладку для текущего процесса?
Номер ответа: 5
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #5
Добавлено: 21.08.07 13:07
2ZagZag:
Данный пример, если ему указать другую раскладку, загрузит её как новую; поэтому желательно менять раскладку через ActivateKeyboardLayout. У меня где-то завалялся пример, как найду-выложу сюда.
http://allapi.mentalis.org/downloads/apiguide/agsetup.exe
Номер ответа: 6
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #6
Добавлено: 21.08.07 14:50
А какая конечная цель? Типа PuntoSwitcher написать?
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 21.08.07 14:54
Я ошибаюсь, или топстартер думает, что если раскладка переключается сама при переходе из одного окна в другое - глючит винда? ))
Глючит? переустанови! Не поможет - ещё раз... после 3-5ого раза до тебя дойдет
Номер ответа: 8
Автор ответа:
K-Unit
Вопросов: 0
Ответов: 2
Профиль | | #8
Добавлено: 21.08.07 17:33
Спасибо всем, я нашел выход из ситуации! Тема закрыта
Номер ответа: 9
Автор ответа:
Mr.Smile
ICQ: 427682013
Вопросов: 14
Ответов: 464
Профиль | | #9
Добавлено: 21.08.07 21:41
Ну давай рассказывай, что ты там придумал! А то собрал тут всех, и фтопку... Отвечай на свой вопрос.