找回密码
 加入
搜索
查看: 3659|回复: 7

[系统综合] 请问怎么屏蔽 Alt+Tab 键?已解决

  [复制链接]
发表于 2012-5-5 20:44:36 | 显示全部楼层 |阅读模式
本帖最后由 dac8282 于 2012-5-7 11:18 编辑

借用网上大侠们的代码做了一个锁定桌面,输入用户名密码才能的代码,但是现在使用Alt+Tab就可以显示下面的任务栏,请问怎么拦截这个组合键?
;以下为键盘屏蔽函数
Func _keyproc($nCode, $wParam, $lParam)

        Local $tKEYHOOKS

        If $nCode < 0 Then

                Return _WinAPI_CallNextHookEx($_hook, $nCode, $wParam, $lParam) ;键盘消息传递到下一个钩子

        EndIf

        $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)

        Switch $wParam

                Case $WM_KEYDOWN

                        $_endkey = DllStructGetData($tKEYHOOKS, "vkCode")
                        MsgBox(0,"key",$_endkey,2)
                        Switch $_endkey

                                Case 91 To 92;左,右win键

                                        Return 1 ;1为禁用,0为开启

                        EndSwitch

        EndSwitch

EndFunc   ;==>_keyproc
发表于 2012-5-5 20:50:28 | 显示全部楼层
下一步你又要问如何屏蔽Ctrl+Alt+Del了
发表于 2012-5-5 21:10:00 | 显示全部楼层
回复 1# dac8282

好心给楼主你一点提示吧!
此类问题, 可以搜索 '按键屏蔽' 或 '屏蔽', 或 '挂机锁' 之类.
会有你想要的答案的! 提问前, 应该先搜索一下!
发表于 2012-5-5 23:28:20 | 显示全部楼层
我记得有个UDF 是可以做到 你找找吧
发表于 2012-5-6 01:07:43 | 显示全部楼层
本帖最后由 tryhi 于 2012-5-6 01:21 编辑

沙发说得很对,椅子已经给你答案了,板凳说了跟没说一样。
接下来楼主可能会问按了win键会显示任务栏,然后是按了ctrl+esc、然后是按了win+d、可能还会是Alt+空格
楼主注册个号不容易,提示一下
HotKeySet('!{tab}','a')
Sleep(10000000)
Func a()
EndFunc
发表于 2012-5-6 01:23:55 | 显示全部楼层
发表于 2012-5-6 04:01:34 | 显示全部楼层
blockinputex udf?
 楼主| 发表于 2012-5-7 11:15:28 | 显示全部楼层
本帖最后由 dac8282 于 2012-5-7 11:16 编辑

Switch $wParam

                Case $WM_KEYDOWN

                        $_endkey = DllStructGetData($tKEYHOOKS, "vkCode")
                      ; MsgBox(0,"key",$_endkey,1)
                        Switch $_endkey
                                 
                                   Case 91 To 92;左,右win键

                                        Return 1 ;1为禁用,0为开启
                                                                        Case 164 ;左右alt键
                                                                                Return 1
                                                                        Case 162 To 163  ;Ctrl键162左163右
                                                                                Return 1
                                                               



                        EndSwitch

        EndSwitch
                 Local $flags = DllStructGetData($tKEYHOOKS, "flags")
                 ; MsgBox(0,"key",$flags,1)
                Switch $flags
                        Case $LLKHF_ALTDOWN
                                                                             Return 1
                                                           EndSwitch
谢谢大家,现在可以屏蔽住ALT和Ctrl键了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 17:32 , Processed in 0.095157 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表