Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как включить CapsLock из VBA? / 6 сообщений из 6, страница 1 из 1
03.08.2004, 10:06:47
    #32632518
toly_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить CapsLock из VBA?
Привет всем!

Нужно чтобы при входе в поле формы включалась клавиша CapsLock,
при выходе - выключалась,

заранее спасибо.
...
Рейтинг: 0 / 0
03.08.2004, 10:48:31
    #32632617
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить CapsLock из VBA?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
 'Code from "VBA Developer's Handbook" (Sybex, 1997): 

Private Const vbKeyScrollLock = &H91

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long
 
Public Function GetCapslock() As Boolean
     ' Return or set the Capslock toggle. 
    GetCapslock = CBool(GetKeyState(vbKeyCapital) And  1 )
End Function
 
Public Function GetNumlock() As Boolean
     ' Return or set the Numlock toggle. 
    GetNumlock = CBool(GetKeyState(vbKeyNumlock) And  1 )
End Function
 
Public Function GetScrollLock() As Boolean
     ' Return or set the ScrollLock toggle. 
    GetScrollLock = CBool(GetKeyState(vbKeyScrollLock) And  1 )
End Function
 
Public Sub SetCapslock(Value As Boolean)
     ' Return or set the Capslock toggle. 
    Call SetKeyState(vbKeyCapital, Value)
End Sub
 
Public Sub SetNumlock(Value As Boolean)
     ' Return or set the Numlock toggle. 
    Call SetKeyState(vbKeyNumlock, Value)
End Sub
 
Public Sub SetScrollLock(Value As Boolean)
     ' Return or set the ScrollLock toggle. 
    Call SetKeyState(vbKeyScrollLock, Value)
End Sub
 
Public Sub SetKeyState(intKey As Integer, fTurnOn As Boolean)
     ' Retrieve the keyboard state, set the particular 
     ' key in which you're interested, and then set 
     ' the entire keyboard state back the way it 
     ' was, with the one key altered. 
    Dim abytBuffer( 0  To  255 ) As Byte
    GetKeyboardState abytBuffer( 0 )
    abytBuffer(intKey) = CByte(Abs(fTurnOn))
    SetKeyboardState abytBuffer( 0 )
End Sub
...
Рейтинг: 0 / 0
03.08.2004, 10:50:10
    #32632624
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить CapsLock из VBA?
А включать/выключать можно, например, по событиям получение/потеря фокуса

Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub FieldName_GotFocus()
 SetCapslock True
End Sub

Private Sub FieldName_LostFocus()
 SetCapslock False
End Sub
...
Рейтинг: 0 / 0
03.08.2004, 11:04:58
    #32632665
АлексейЕ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить CapsLock из VBA?
Так, на всякий случай, хочу напомнить о функции UCase()
...
Рейтинг: 0 / 0
03.08.2004, 11:09:58
    #32632675
toly_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить CapsLock из VBA?
IgorM

Спасибо еще раз, все отлично!!!
...
Рейтинг: 0 / 0
03.08.2004, 11:14:51
    #32632693
toly_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как включить CapsLock из VBA?
АлексейЕ

UCase преобразует все к верхнему регистру, в моем случае могут быть и нижнего, например "НИИ им.АХУНБАЕВА", но все равно спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как включить CapsLock из VBA? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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