Отследить NumLock или CapsLock
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Отследить NumLock или CapsLock Expand / Collapse
Автор
Сообщение
12.06.2000 15:29
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 02.06.2000 15:56
Сообщ.: 11, Visits: 122
Как сделать, чтобы форма появлялась и "пряталась" в зависимости от состояния Num Lock. С GetKeyboardState возникли проблемы. Очень надо, спасибо! Можно прислать по мылу kudryashov@hotmail.ru
Сообщ. #528
17.06.2000 2:32
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 17.06.2000 2:39
Сообщ.: 257, Visits: 2 861
Попробуй это, должно работать:
создай StatusBar, вставь в него 3 панели. Свойсво Style для первой установи "Caps", для второй - "Num", для третьей - "Scrl". А потом отслеживай их состояние.
PS:
Точно знаю, что есть такая API-функция, которая отслеживает и Caps, и Num, и Scroll. Но какая это именно функция, не помню. Если найду, помещу в форум.
Сообщ. #557
18.06.2000 14:38
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 02.06.2000 15:56
Сообщ.: 11, Visits: 122
Спасибо, попробую и напишу о том, что получилось!
Сообщ. #570
20.06.2000 2:22
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 23.03.2000 5:02
Сообщ.: 40, Visits: 441
Попытайся использовать GetAsyncKeyState() с параметрами
&H14 - Caps Lock
&H90 - Num Lock
&H91 - Scroll Lock
Эта функция возвращает 0, если клавиша не была нажата,
1, если она была нажата и отпущена, и другое значение,
если она нажата сейчас.
В случае, если "лампочка" горит, клавиша нажата сейчас.

Удачи!

Если все еще есть проблемы, можешь писать напрямую
желательно по-английски, поскольку у меня Hebrew Enabled Windows.

Рут Глушкина,
Израиль
Сообщ. #579
21.06.2000 14:37
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 02.06.2000 15:56
Сообщ.: 11, Visits: 122
БОЛЬШОЕ спасибо Всем кто принимал участие! Вот, как Я сам реализовал ЭТО. На оригинальность не претендую!
---------------
1. Создайте стандартный проект; 2. На форму поместите таймер (Timer); 3. Задайте ему следующие свойства: Enabled=False, Interval=10
----------------
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer
Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Private Type KeyboardBytes
kbByte(0 To 255) As Byte
End Type
Dim ASD As Long, ASDOLD As Long, kbArray As KeyboardBytes
Const VK_NUMLOCK = &H90
Const VK_SCROLL = &H91
Const VK_CAPITAL = &H14
----------------------
Private Sub Form_Load()
If GetKeyState(&H90) = 1 Then
Me.Visible = True
Else
Me.Visible = False
End If
Timer.Enabled = True
End Sub
-----------------------
Private Sub Timer_Timer()
ASD = GetAsyncKeyState(VK_NUMLOCK)
If ASD = ASDOLD Then Exit Sub
If ASD < 0 And ASDOLD < 0 Or ASD > 1 And ASDOLD > 1 Then Exit Sub
ASDOLD = ASD
If ASD <> 0 Then
If Me.Visible = False Then
Me.Visible = True
kbArray.kbByte(VK_NUMLOCK) = 1
SetKeyboardState kbArray
Me.WindowState = 0
Me.SetFocus
Else
Me.Visible = False
End If
End If
End Sub
Сообщ. #587
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Comanche, Alexey Spirin

Время GMT +3:00, Сейчас 7:58