Сегодня мы подружим нашу программу с клавиатурой. Главное - не переста-
Ринат Мязитов
раться, иначе день и ночь напролет они будут общаться между собой ©
E-mail:
Ramil-333@tut.by
Также, может быть, с этой статьи появится новое общество. И мы сделаем
свою компьютерную жизнь чуть безопасней.
-------
-----------------------
j
"РЛ" - НАЧИНАЮ Щ ИМ
I
------------------------------
J i О
3
û ljJ U Ü jJ -U J \y p
o ï l
Знакомимся с клавиатурой
Все на самом деле просто. Прибегать к шаману или
танцевать с бубном не придется!
Просто нужно знать пару команд. Как всегда, для луч-
шего понимания сразу пример. Для начала создаем в
BorlandC++Builder новый проект File ->New -> Application.
И просто добавим на нашу форму кнопку (button). И пи-
шем там такой код (врезка 1).
Строчка
k e y b d _ e v e n t(“M ”, 0, 0 ,0 );
означает, что мы
сделали кнопку “М” отжатой, то есть как просто кнопка
на клавиатуре.
Следующим кодом мы нажали программно на кнопку
“М”:
k e y b d „eventС‘М ”, О, K E Y E V E N T F _ K E Y U P ,0 );.
Но если скомпилировать эту программу, то, нажав на
нашу кнопку, ничего не произойдет: так как если просто
включив компьютер, вы нажмете на кнопку “М”. А что,
если сымитировать нажатие каких-нибудь клавиш!? Вот,
допустим, сочетание Alt-Tab (если нажать эти клавиши,
то пользователь перейдет к окну другой открытой про-
граммы). Так вот давайте сделаем такую мини-програм-
му, на которой есть кнопочка и если на нее нажать, то мы
перейдем к другой программы, а потом добавим ей еще
парочку трюков. Чтобы сымитировать нажатие Alt-Tab,
нужно написать следующий код (врезка 2).
Как видите, для начала мы написали код для отжатия
клавиш, а затем написали код нажатия этих клавиш.
Объясню, для чего мы писали две первые строчки - от-
жатия клавиш: это как перестраховка, что в этот момент
не нажата та клавиша, которая нам нужна.
Каждая клавиша имеет свой код (см. таблицу кодов).
Вот таким образом можно имитировать нажатие клавиш.
Допустим, если мы хотим сразу скрыть все окна (на-
жатие кнопок Win + М скрывает все окна), то надо напи-
сать такой код (врезка 3).
keybd_event(VK_MENU, 0, 0 ,0);
(g)
keybd_event(VK_TAB, 0, 0 ,0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP,0);
Клавиша
Десятичное
число
Шестнадцатеричное
число
Символическое
имя
Сравнение
no символу
F1
112
0x70
VK_F1
-
F2
113
0x71
VK_F2
-
F3
114
0x72
VK_F3
*
F4
115
0x73
VK_F4
-
F5
116
0x74
VK_F5
-
F6
117
0x75
VK_F6
-
F7
118
0x76
VK_F7
-
F8
119
0x77
VK_F8
F9
120
0x78
VK_F9
-
F10
121
0X79
VK_F10
-
пробел
32
0x20
VK_SPACE
-
Backspace
8
0x8
VK_BACK
-
Tab
9
0x9
VK_TAB
-
Enter
13
0x00
VKJ4ETURN
-
Shift
16
0x10
VK_SHIFT
-
Ctrl
17
0x11
VK_CONTROL
-
Alt
18
0x12
VK_MENU
CapsLock
20
0x14
VK.CAPITAL
-
Esc
27
0x1 В
VK_ESCAPE
-
Insert
45
0x2D
VKJNSERT
PageUp
33
0x21
VK_PRIOR
-
PageDown
34
0x22
VKJ4EXT
-
End
35
0x23
VK_END
-
Home
36
0x24
VK_HOME
-
курсор <
37
0x25
VK_LEFT
курсор л
38
0x26
VK_UP
-
курсор >
39
0x27
VKJ4IGHT
-
курсор V
40
0x28
VK_DOWN
Delete
46
0х2Е
VK_DELETE
PrintScreen
44
0х2С
VK^SNAPSHOT
-
ScrollLock
145
0x91
VK_SCROLL
-
0,)
48
0x30
-
0
1 I
49
0x31
-
1
2 @
50
0x32
-
2
3 #
51
0x33
-
3
4 $
52
0x34 '
4
5%
53
0x35
-
5
6 Л
54
0x36
6
7 &
55
0x37
-
7
keybd_event(“M”, 0, 0 ,0); \\ клавиша “м” не нажата
keybd_event(“M”, 0, KEYEVENTF_KEYUP,0); \\ теперь нажимаем клавишу “м”
keybd_event(VK_LWIN, 0, 0 ,0);
\\ отжимаем кнопку WIN
( D
keybd_event(“M”, 0, 0 ,0);
\\ отжимаем кнопку М
keybd_event(“M”, 0, KEYEVENTF_KEYUP,0); \\ нажимаем кнопку М
keybd_event(VK_LWIN, 0, KEYEVENTF__KEYUP,0); \\ нажимаем кнопку WIN
Ü Радиолюбитель - 0 6 /2 0 0 8
предыдущая страница 48 Радиолюбитель 2008-06 читать онлайн следующая страница 50 Радиолюбитель 2008-06 читать онлайн Домой Выключить/включить текст