Страница: 1 |
Узнай. Если CapsLock включён, то пошли SendKeys с кодом Caps Lock'а. Удачи! Тогда ещё один нескромный вопрос. Как узнать включён ли CapsLock или нет и какой код у него? Может поможет? Нашёл где-то на HiProg.com (точнее не помню) '////////////////////////////////////////////////// Чтобы активировать или деактивировать индикацию Num Lock, Caps Lock или Scroll Lock на клавиатуре, надо использовать API функцию SetKeyboardState. В этой функции используется такой тип данных как Byte. Visual Basic поддерживает этот тип данных, но вместо него мы будем передавать пользовательский тип данных, в котором будет содержаться массив с состоянием клавиш. Сначала создадим новый проект и объявим API функцию, константы и пользовательский тип данных в коде формы: Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long ' вместо типа данных Byte мы ставим пользовательский тип данных KeyboardBytes Private Const VK_NUMLOCK = &H90 Private Type KeyboardBytes Private kbArray As KeyboardBytes Теперь добавим в массив kbArray состояния клавиш Num Lock, Caps Lock или Scroll Lock. Но прежде этого добавьте на форму таймер (Tmr) с интервалом 300 и в событие Timer напишите: Private Sub Tmr_Timer() Теперь всё готово. После запуска вашего проекта индикаторы Num Lock, Caps Lock и Scroll Lock будут беспорядочно мигать. Это будет происходить потому, что значение состояния клавиши у нас получается равным либо 0, либо 1 (из - за функции лучайных чисел Rnd). '////////////////////////////////////////////////// Юзай на здоровье... Премного благодарствую. Сейчас проверю Блин... либо я чего то не догоняю, либо ещё какя есть причина, но конкретно под ХР ни этот пример, ни пример из API_Guide не работает С локами более-менее все рассказали, а с раскладками можешь использовать это: Private Declare Function ActivateKeyboardLayout Lib "user32" _ Private Const kbLayoutRus As Long = 68748313 Public Function SetKeyboardLayout(Optional Russian As Boolean) As Long У меня работает везде без проблем Страница: 1 |
Вопрос: Раскладка и CapsLock
Добавлено: 08.05.03 14:34
Автор вопроса: Padre | Web-сайт:
Как программно отключить CapsLock и перейти на определённую(!) раскладку клавиатуры?
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
DAN
ICQ: 234826
Вопросов: 10
Ответов: 124
Web-сайт:
Профиль | | #1
Добавлено: 08.05.03 22:57
Номер ответа: 2
Автор ответа:
Padre
ICQ: 346632205
Вопросов: 25
Ответов: 215
Web-сайт:
Профиль | | #2
Добавлено: 09.05.03 00:23
Номер ответа: 3
Автор ответа:
Justas
ICQ: 259418212
Вопросов: 24
Ответов: 325
Web-сайт:
Профиль | | #3
Добавлено: 11.05.03 05:33
Private Const VK_CAPITAL = &H14
Private Const VK_SCROLL = &H91
kbByte(0 To 255) As Byte
End Type
kbArray.kbByte(VK_NUMLOCK) = (Rnd * 1) \ 1
kbArray.kbByte(VK_CAPITAL) = (Rnd * 1) \ 1
kbArray.kbByte(VK_SCROLL) = (Rnd * 1) \ 1
SetKeyboardState kbArray
End Sub
Номер ответа: 4
Автор ответа:
Padre
ICQ: 346632205
Вопросов: 25
Ответов: 215
Web-сайт:
Профиль | | #4
Добавлено: 11.05.03 19:34
Номер ответа: 5
Автор ответа:
Padre
ICQ: 346632205
Вопросов: 25
Ответов: 215
Web-сайт:
Профиль | | #5
Добавлено: 11.05.03 22:21
Номер ответа: 6
Автор ответа:
hedgehog
ICQ: 175571327
Вопросов: 15
Ответов: 207
Web-сайт:
Профиль | | #6
Добавлено: 11.05.03 23:44
(ByVal HKL As Long, ByVal flags As Long) As Long
Private Const kbLayoutEng As Long = 67699721
If Russian Then
SetKeyboardLayout = ActivateKeyboardLayout&kbLayoutRus, 0)
Else
SetKeyboardLayout = ActivateKeyboardLayout&kbLayoutEng, 0)
End If
End Function
Номер ответа: 7
Автор ответа:
Padre
ICQ: 346632205
Вопросов: 25
Ответов: 215
Web-сайт:
Профиль | | #7
Добавлено: 12.05.03 19:38
Thnx, hedgehog
Номер ответа: 8
Автор ответа:
d-ovs
Вопросов: 1
Ответов: 8
Профиль | | #8
Добавлено: 06.09.10 14:57
Ну, не знаю, что это у Вас за методы, но я лично делаю так:
Номер ответа: 9
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #9
Добавлено: 06.09.10 18:56
лично ты страдаешь херней с поднятием темы семилетней давности
Номер ответа: 10
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #10
Добавлено: 06.09.10 18:57
к тому же, ты дважды страдаешь херней, ибо состояние капса проще узнать в My.Keyboard.CapsLock