Что нового

[Мышь, клавиатура] Блокировать сочетание клавиш ALT+TAB

Danzo

Новичок
Сообщения
18
Репутация
0
Использую библиотеку HotKey UDF Library v2.1b для этих целей:
Код:
#Include <HotKey.au3>

Global Const $VK_TAB = 0x09

_HotKey_Assign(BitOR($CK_ALT, $VK_TAB), 'bkey')

While 1
    Sleep(250)
WEnd

Func bkey()
EndFunc

И собственно проблема:
Зажимаем Alt, Зажимаем TAB, отпускаем Alt, и после Alt остается зажатым до нажатия Alt снова.
Еще при зажатом Alt не работает клавиша TAB, если возможно сделать так чтобы обе клавиши функционировали, но не работало сочетание.
 

sngr

AutoIT Гуру
Сообщения
975
Репутация
391
Код:
HotKeySet('!{tab}','fu1')
HotKeySet('^1','ex')
While 1
	Sleep(100)
WEnd
Func fu1()
EndFunc
Func ex()
	Exit
EndFunc
 
Автор
Danzo

Danzo

Новичок
Сообщения
18
Репутация
0
sngr, я пробовал так, вообще не работает.
 

InnI

AutoIT Гуру
Сообщения
4 432
Репутация
1 200
Danzo
Alt остается зажатым до нажатия Alt снова
На Win7 x86 подобное поведение не наблюдается.

Еще при зажатом Alt не работает клавиша TAB
Нажатие TAB при зажатом Alt - это и есть сочетание Alt+TAB. Чего-то я в вашей фразе не понимаю... Как должна работать TAB при зажатом Alt? :scratch:

Попробуйте так
Код:
#include <WinAPI.au3>
#include <WindowsConstants.au3>

OnAutoItExitRegister("Cleanup")

$hKeyProc = DllCallbackRegister("KeyProc", "long", "int;wparam;lparam")
$hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hKeyProc), _WinAPI_GetModuleHandle(0))

While Sleep(111)
WEnd

Func KeyProc($nCode, $wParam, $lParam)
  Local $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
  If $nCode >= 0 And $wParam = 260 And $tKEYHOOKS.vkCode = 9 And $tKEYHOOKS.scanCode = 15 Then Return -1
  Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndFunc

Func Cleanup()
  _WinAPI_UnhookWindowsHookEx($hHook)
  DllCallbackFree($hKeyProc)
EndFunc
 
Автор
Danzo

Danzo

Новичок
Сообщения
18
Репутация
0
InnI [?]
На Win7 x86 подобное поведение не наблюдается.
Win 7 SP1 x64
А код работает на ура.
OffTopic:
P.S. как правильно отключить функцию Caps Lock при том чтобы сама клавиша работала?
 
Верх