VB中实现屏蔽Win键/alt+tab/ctrl+esc/alt+f4

 

  本栏目相关搜索:www.sy15168.cn|中国商业网|商业网|商业网站|神州商业网|商业网站sy15168|资讯中心|新闻频道
VB中实现屏蔽Win键/alt+tab/ctrl+esc/alt+f4
神州商业网   2012-11-29 20:18:56 作者:SystemMaster 来源: 文字大小:[][][]

屏蔽Win键(稍作修改可以屏蔽除Ctrl+Alt+Del外的任何按键或按键组合),

本程序在Windows2000 + VB6.0环境下通过

'***************************

'把以下程序粘贴到窗体中

'***************************

Private Sub Form_Load()

    Hook

End Sub


Private Sub Form_Unload(Cancel As Integer)

    UnHook

End Sub

'***************************

'把以下程序粘贴到模块中

'***************************

Option Explicit


Private Declare Function CallNextHookEx Lib "user32" _
(ByVal hHook As Long, ByVal nCode As Long, ByVal wParam _
As Long, lParam As Any) As Long
Private Declare Function SetWindowsHookEx Lib "user32" _
Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal _
lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) _
As Long
Private Declare Function UnhookWindowsHookEx Lib _
"user32" (ByVal hHook As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" (Destination As Any, Source As _
Any, ByVal Length As Long)
Private Type PKBDLLHOOKSTRUCT

    vkCode As Long

    scanCode As Long

    flags As Long

    time As Long

    dwExtraInfo As Long

End Type
Private Const WM_KEYDOWN = &H100
Private Const WM_SYSKEYDOWN = &H104
Private Const WM_KEYUP = &H101
Private Const WM_SYSKEYUP = &H105
Private Const VK_LWIN = &H5B
Private Const VK_RWIN = &H5C
Private Const HC_ACTION = 0
Private Const WH_KEYBOARD_LL = 13
Private lngHook As Long


'使用底层KeyboardHook拦截按键消息

Public Function LowLevelKeyboardProc(ByVal nCode _
As Long, ByVal wParam As Long, ByVal lParam As Long) _
As Long

    Dim blnHook As Boolean

    Dim p As PKBDLLHOOKSTRUCT

    

    If nCode = HC_ACTION Then

If wParam = WM_KEYDOWN or wParam = WM_SYSKEYDOWN _
 or wParam = WM_KEYUP or wParam = WM_SYSKEYUP Then
            CopyMemory p, ByVal lParam, Len(p)
  
blnHook = ((p.vkCode = VK_ESCAPE) And  _
((GetKeyState(VK_CONTROL) And &H8000) <> 0)) or _
((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <> 0)) or _
(p.vkCode = VK_LWIN) or (p.vkCode = VK_RWIN) or _
((p.vkCode = vbKeyF4) And  _
((GetKeyState(vbKeyMenu) And &H8000) <> 0))


'((p.vkCode = VK_ESCAPE) And  _((GetKeyState(VK_CONTROL)  _
And &H8000) <> 0))  这个是屏蔽ESC+Ctrl
            
'((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <>  _
0))  这个是屏蔽Tab+Alt
            
'(p.vkCode = VK_LWIN) or (p.vkCode = VK_RWIN)   这个是屏蔽左右win
            
 '((p.vkCode = vbKeyF4) And ((GetKeyState(vbKeyMenu)  _
And &H8000) <> 0))  这个是屏蔽Alt+F4

            
        End If


    End If

    

    If blnHook Then

        LowLevelKeyboardProc = 1

    Else

        Call CallNextHookEx(WH_KEYBOARD_LL, nCode, wParam, lParam)

    End If

End Function


Public Sub HooK()

    lngHook = SetWindowsHookEx(WH_KEYBOARD_LL, _
    AddressOf LowLevelKeyboardProc, App.hInstance, 0)

End Sub


Public Sub UnHooK()

    Call UnhookWindowsHookEx(lngHook)

End Sub




上一篇文章:  VB中连接数据库
下一篇文章:  自动调用共享打印机

分享到:
最新评论
发表评论
标题
内容
表情
 
 分类导航:
网络动态  (410)
焦点人物  (211)
技术杂谈  (606)
商业新闻  (25)
名词与诠释  (5)
财经视频资讯  (10)
社会视频资讯  (85)
 最新资讯:
    ◆  2023年新年 [1/1]
    ◆  阿根廷夺冠20 [12/29]
    ◆  第三届中国资管 [12/29]
    ◆  疫情过后美国通 [12/29]
    ◆  孙颖莎2022 [12/29]
    ◆  习近平指引农业 [12/27]
    ◆  河南郑州某商场 [12/26]
    ◆  中国经济增速将 [12/9]
    ◆  设置自动同步时 [5/29]
    ◆  西门子PCAc [11/7]
    ◆  解决VB添加I [10/7]
    ◆  大话西游2经典 [3/23]
    ◆  大话西游2经典 [3/23]
    ◆  2019年食品 [1/17]
    ◆  2019世乒赛 [4/21]
更多
 企业黄页:
    ◆  乐宇乒乓球俱 [4/18]
    ◆  友谊乒乓球俱 [4/18]
    ◆  深圳市威图科 [12/29]
    ◆  烟台海特林自 [12/29]
    ◆  杭州虹炫网络 [12/26]
    ◆  新乡县玉强振 [12/18]
    ◆  衡水瑞隆矿山 [1/28]
    ◆  广州领嘉包装 [1/28]
    ◆  东莞市塘厦锦 [1/28]
    ◆  太原市福佳林 [1/26]
    ◆  河北省任丘市 [1/26]
    ◆  沧州起航拓展 [1/26]
    ◆  佛山市铧睿科 [1/26]
    ◆  宁波友利工业 [1/25]
    ◆  重庆市江津区 [1/25]
更多
关于我们 联系方式 推广效果 全站搜索 网站留言 网站声明 网址导航 企业黄页申请 申请友情链接

神州商业网
联系邮箱:xn0216@163.com
网站地图
Copyright © 2009-2017 神州商业网 版权所有
商业网_中国商业网_商业网站