Что нового

Блокировать или отключит клавиатуру на время

hikki

Продвинутый
Сообщения
233
Репутация
99
Вопрос как?
Нужно на время работы функции отключить клавиатуру или ввод с нее или еще как ее заблочить.
Требуется для работы бота, по какимто причинам в игре не работает BlockInput и BlockInputEx.

http://autoit-script.ru/index.php/topic,347.0.html
Надеюсь не сильно нарушаю правила форума, создавая дублирующую тему. Вроде это не только ботов касается, да и многие профи могут не заглядывать в тот раздел.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 706
Можно так.

Код:
#Include <GUIConstantsEx.au3>
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>

Global $Lock = False

$hDll = DllCallbackRegister('_KbdHook', 'long', 'int;wparam;lparam')
$hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hDll), _WinAPI_GetModuleHandle(0), 0)

GUICreate('MyGUI', 200, 59)
$Check = GUICtrlCreateCheckbox('Lock keyboard', 20, 20, 160, 19)
GUISetState()

While 1
	$Msg = GUIGetMsg()
	Switch $Msg
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $Check
			_KbdLock(BitAND(GUICtrlRead($Check), $GUI_CHECKED))
	EndSwitch
WEnd

Func _KbdLock($fLock)
	$Lock = $fLock
EndFunc   ;==>_KbdLock

Func _KbdHook($iCode, $wParam, $lParam)
	If ($iCode > -1) And ($Lock) Then
		Switch $wParam
			Case $WM_KEYDOWN, $WM_SYSKEYDOWN
				Return -1
		EndSwitch
	EndIf
	Return _WinAPI_CallNextHookEx($hHook, $iCode, $wParam, $lParam)
EndFunc   ;==>_KbdHook

Func OnAutoItExit()
	_WinAPI_UnhookWindowsHookEx($hHook)
	DllCallbackFree($hDll)
EndFunc   ;==>OnHotKeyExit
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 175
Репутация
2 333
hikki [?]
Надеюсь не сильно нарушаю правила форума, создавая дублирующую тему.
Нету такого «не сильное нарушение правил», нарушение есть нарушение. А то что ты знаешь об этом не делает его облегчённым, даже наоборот.

по какимто причинам в игре не работает BlockInput и BlockInputEx
Пример использования (последнего)?

Yashied [?]
Так в _BlockInputEx используется этот же хук :smile:
 
Автор
H

hikki

Продвинутый
Сообщения
233
Репутация
99
Но тем не менее здесь решение нашлось. Хотя возможно что я плохо ковырял BlockInputEx, но тем не менее решение есть и оно работает.
 
Верх