在WIN2K中拦截Alt+Tab,Alt+F4,Ctrl+Esc的模块,希望大家喜欢!(忘了是从哪来的,向原作者至歉。)

转载 2004年06月26日 13:52:00

'*************************************************************************
'**模 块 名:拦截Alt+Tab,Alt+F4,Ctrl+Esc
'**日    期:2004年05月16日
'**描    述:载入时用 Hook(),  卸载时用UnHook()
'*************************************************************************
'在WIN2K中,执行下面的程序中的Hook(),可以拦截Alt+Tab,Alt+F4,Ctrl+Esc

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 Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
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 HC_ACTION = 0
Private Const WM_KEYDOWN = &H100
Private Const WM_SYSKEYDOWN = &H104
Private Const WM_KEYUP = &H101
Private Const WM_SYSKEYUP = &H105
Private Const VK_TAB = &H9
Private Const VK_ESCAPE = &H1B
Private Const VK_CONTROL = &H11
Private Const WH_KEYBOARD_LL = 13
Private Const LLKHF_ALTDOWN = &H20

Private PrevHook As Long

Public Sub Hook()
    PrevHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
End Sub


Public Sub UnHook()
    UnhookWindowsHookEx PrevHook
End Sub

Public Function LowLevelKeyboardProc(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Dim fEatKeystroke As Boolean
    Dim p As PKBDLLHOOKSTRUCT
   
    If ncode = HC_ACTION Then
        Select Case wParam
            Case WM_KEYDOWN, WM_SYSKEYDOWN, WM_KEYUP, WM_SYSKEYUP
                CopyMemory p, ByVal lParam, Len(p)
                If (p.flags And LLKHF_ALTDOWN) <> 0 Then 'Alt + AnyKey
                    fEatKeystroke = True
                End If
                If (p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0) Then 'Ctrl + Esc
                    fEatKeystroke = True
                End If
            Case Else
                'do nothing
        End Select
    End If
   
    If fEatKeystroke Then
        LowLevelKeyboardProc = 1
    Else
        CallNextHookEx WH_KEYBOARD_LL, ncode, wParam, lParam
    End If
End Function

源文件与模块生成时的文件不同,是否希望调试器使用它?如何解决

前言    在调试的过程中遇到了一些问题。如下图 出现问题的背景:   在调试添加用户功能的代码的时候出现了这个问题,先前也没有怎么当回事儿,就直接点 “是”,程序就接着运行了。但是随着调试的增多...
  • zhang18330699274
  • zhang18330699274
  • 2016年03月14日 09:30
  • 902

git笔记整理二-github fork之后更新同步原作者的修改

作为一个IT人,通过github进行学习是最快的成长手段。我们可以浏览别人的优秀代码。但只看不动手还是成长得很慢,因此为别人贡献代码才是明智之举。比如我们看下片看,许多大片都是由字幕组免费翻译压制的。...
  • kingson2012
  • kingson2012
  • 2015年04月15日 15:45
  • 310

关于调试时出现“源文件与模块生成时的文件不同”

今天打开工程写代码,一直出现莫名其妙的错误,怎么改都不行,后俩
  • deirjie
  • deirjie
  • 2014年07月19日 16:05
  • 3904

分享几个主题给大家希望大家喜欢!!!

紫色梦幻win7主题 [img=610,343] http://www.33.la/uploads/20130101ZTZF/286C.jpg [/img] 今日推荐的主题是一款以紫色为主打设计的...
  • qazcxl
  • qazcxl
  • 2013年03月01日 14:19
  • 123

从底层看看HTTP模块的构建之net模块深入理解

问题1:如何创建一个TCP服务器? net.createServer([options][, connectionListener]) 创建一个Server对象,参数connectionListene...
  • liangklfang
  • liangklfang
  • 2016年04月16日 16:10
  • 1169

Alt+Tab键的窗口切换界面一直不消失

Alt+Tab键的窗口切换界面一直不消失2010-05-08 21:32创旧黄 | 分类:Windows | 浏览1656次以前感觉是搜狗浏览器的问题,关掉之后就好了.但是今天怎么都不消失,一直置顶在...
  • forest_fire
  • forest_fire
  • 2016年03月21日 10:51
  • 2542

github上fork别人的代码之后,如何保持和原作者同步的更新

git clone 命令 -o Instead of using the remote name origin to keep track of the upstream repository,...
  • mydear_11000
  • mydear_11000
  • 2016年03月14日 17:54
  • 708

给大家带来几个还不错的主题!!!希望大家喜欢哦!!!

紫色梦幻win7主题 [img=610,343] http://www.33.la/uploads/20130101ZTZF/286C.jpg [/img] 今日推荐的主题是一款以紫色为主打设计的...
  • qazcxl
  • qazcxl
  • 2013年03月01日 17:51
  • 154

忘了她,就像忘了一朵花

忘了她,就像忘了一朵花 忘了她就像忘了一朵花 就像忘了哭过的青春 笑过的年华 忘了她就像忘了一幅画 就像忘了依偎的清晨 醉过的晚霞 时光慢慢如流沙 一转眼...
  • w44320597
  • w44320597
  • 2016年06月30日 11:59
  • 1391

堆砌相同高度的塔

题目小易有n块砖块,每一块砖块有一个高度。小易希望利用这些砖块堆砌两座相同高度的塔。为了让问题简单,砖块堆砌就是简单的高度相加,某一块砖只能使用在一座塔中一次。小易现在让能够堆砌出来的两座塔的高度尽量...
  • zhufenghao
  • zhufenghao
  • 2017年04月09日 11:19
  • 1429
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在WIN2K中拦截Alt+Tab,Alt+F4,Ctrl+Esc的模块,希望大家喜欢!(忘了是从哪来的,向原作者至歉。)
举报原因:
原因补充:

(最多只允许输入30个字)