AutoIt: 3.3.8.1
Версия: 1.0
Категория: Вспомогательные функции, Мышь, Клавиатура
Описание:
Модификация стандартной "IsPressed()". В отличие от неё возвращает не факт нажатия некой клавиши в момент вызова функции, а факт того, что клавиша нажималась с момента последнего вызова функции.
Весьма полезно, если нет возможности сканировать состояние клавиатуры/мышы достаточно часто (чаще чем порядка 0,2 секунды), а по возврату из подпрограммы/завершению цикла нужно знать, нажималась ли какая то клавиша.
Код:
Пример:
Источник: autoit-script.ru
Автор(ы): Naisho :-\
Версия: 1.0
Категория: Вспомогательные функции, Мышь, Клавиатура
Описание:
Модификация стандартной "IsPressed()". В отличие от неё возвращает не факт нажатия некой клавиши в момент вызова функции, а факт того, что клавиша нажималась с момента последнего вызова функции.
Весьма полезно, если нет возможности сканировать состояние клавиатуры/мышы достаточно часто (чаще чем порядка 0,2 секунды), а по возврату из подпрограммы/завершению цикла нужно знать, нажималась ли какая то клавиша.
Код:
Код:
Func _WasPressed($sHexKey, $vDLL = 'user32.dll')
Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey)
If @error Then Return SetError(@error, @extended, False)
Return BitAND($a_R[0], 0x0001) <> 0
EndFunc
Пример:
Код:
#include <Misc.au3>
Local $hDLL = DllOpen("user32.dll")
_WasPressed("", $hDLL)
While 1
_MySubFunction(888)
If _WasPressed("20", $hDLL) Then ConsoleWrite("_WasPressed - была нажата клавиша Пробел." & @CRLF)
If _IsPressed("20", $hDLL) Then ConsoleWrite("_IsPressed - нажата клавиша Пробел." & @CRLF)
If _WasPressed("10", $hDLL) Then ConsoleWrite("_WasPressed - была нажата клавиша Shift." & @CRLF)
If _IsPressed("10", $hDLL) Then ConsoleWrite("_IsPressed - нажата клавиша Shift." & @CRLF)
If _WasPressed("1B", $hDLL) Then
ConsoleWrite("_WasPressed - была нажата клавиша ESC выход" & @CRLF)
ExitLoop
EndIf
WEnd
DllClose($hDLL)
Exit
Func _MySubFunction($t)
Sleep($t)
EndFunc
Func _WasPressed($sHexKey, $vDLL = 'user32.dll')
Local $a_R = DllCall($vDLL, "short", "GetAsyncKeyState", "int", '0x' & $sHexKey)
If @error Then Return SetError(@error, @extended, False)
Return BitAND($a_R[0], 0x0001) <> 0
EndFunc
Источник: autoit-script.ru
Автор(ы): Naisho :-\