Функция _IsPressed

 ↑  ←  Описание функции


_IsPressed

Проверяет нажатие клавиш

#include <Misc.au3>
_IsPressed($sHexKey [, $vDLL = 'user32.dll'])

Параметры

$sHexKey Проверяемая клавиша
$vDLL [необязательный] Указатель DLL или по умолчанию user32.dll

Возвращаемое значение

True :1
False :0

Примечания

Если функция вызывается многократно, то следует открыть 'user32.dll' с помощью DllOpen и передать дескриптор.
Убедитесь в том, чтобы закрыть дескриптор 'user32.dll' в конце скрипта, используя DllClose.

_IsPressed() возвращает 1 до тех пор, пока клавиша не будет отпущена.
Даже кратковременное нажатие клавиш может привести к многочисленным возвращениям успеха в цикле.
Если вызываемый код не содержит блокирующую функцию (например MsgBox) и пользователю не требуется множественный возврат от _IsPressed, то скрипт должен подождать пока _IsPressed() не возвратит 0 перед продолжением.

01 Левая кнопка мыши
02 Правая кнопка мыши
04 Средняя кнопка мыши (три кнопки мыши)
05 Windows 2000/XP: X1 кнопка мыши
06 Windows 2000/XP: X2 кнопка мыши
08 Backspace
09 Tab
0C CLEAR
0D Enter
10 Shift
11 Ctrl
12 Alt
13 Pause
14 CAPS LOCK
1B Esc
20 Spacebar, Пробел
21 Page Up
22 Page Down
23 End
24 Home
25 Стрелка влево
26 Стрелка вверх
27 Стрелка вправо
28 Стрелка вниз
29 SELECT
2A PRINT
2B EXECUTE
2C Print Screen
2D Ins, Insert
2E Del, Delete
30 0
31 1
32 2
33 3
34 4
35 5
36 6
37 7
38 8
39 9
41 A
42 B
43 C
44 D
45 E
46 F
47 G
48 H
49 I
4A J
4B K
4C L
4D M
4E N
4F O
50 P
51 Q
52 R
53 S
54 T
55 U
56 V
57 W
58 X
59 Y
5A Z
5B Левый Windows
5C Правый Windows
60 Цифровая клавиатура 0
61 Цифровая клавиатура 1
62 Цифровая клавиатура 2
63 Цифровая клавиатура 3
64 Цифровая клавиатура 4
65 Цифровая клавиатура 5
66 Цифровая клавиатура 6
67 Цифровая клавиатура 7
68 Цифровая клавиатура 8
69 Цифровая клавиатура 9
6A Умножить *
6B Прибавить +
6C Separator
6D Вычесть -
6E Десятичный знак ,
6F Разделить /
70 F1
71 F2
72 F3
73 F4
74 F5
75 F6
76 F7
77 F8
78 F9
79 F10
7A F11
7B F12
7C-7F F13 - F16
80H-87H F17 - F24
90 Num Lock
91 Scroll Lock
A0 Левый SHIFT
A1 Правый SHIFT
A2 Левый CONTROL
A3 Правый CONTROL
A4 Левый MENU
A5 Правый MENU
BA ;
BB =
BC ,
BD -
BE .
BF /
C0 `
DB [
DC \
DD ]

Пример

#include <Misc.au3>

Local $hDLL = DllOpen("user32.dll")

While 1
    If _IsPressed("10", $hDLL) Then
        ConsoleWrite("_IsPressed - Нажата клавиша Shift." & @CRLF)
        ; Цикл ожидания, пока клавиша не будет отпущена.
        While _IsPressed("10", $hDLL)
            Sleep(250)
        WEnd
        ConsoleWrite("_IsPressed - Отпущена клавиша Shift." & @CRLF)
    ElseIf _IsPressed("1B", $hDLL) Then
        MsgBox(4096, "_IsPressed", "Нажата клавиша Esc, поэтому скрипт завершает работу.")
        ExitLoop
    EndIf
    Sleep(250)
WEnd

DllClose($hDLL)