我想得到任意快捷键是由哪几个键组合而成~~~
情况紧急,望高手多多指教~~~~~

解决方案 »

  1.   

    'frmMain
    VERSION 5.00
    Begin VB.Form FrmMain 
       Caption         =   "Form1"
       ClientHeight    =   1890
       ClientLeft      =   60
       ClientTop       =   345
       ClientWidth     =   6165
       LinkTopic       =   "Form1"
       ScaleHeight     =   1890
       ScaleWidth      =   6165
       StartUpPosition =   3  '窗口缺省
       Begin VB.Label Label1 
          AutoSize        =   -1  'True
          Caption         =   "侦测有没有按到PrintScreen键"
          BeginProperty Font 
             Name            =   "宋体"
             Size            =   15.75
             Charset         =   134
             Weight          =   400
             Underline       =   0   'False
             Italic          =   0   'False
             Strikethrough   =   0   'False
          EndProperty
          Height          =   315
          Left            =   705
          TabIndex        =   0
          Top             =   660
          Width           =   4335
       End
    End
    Attribute VB_Name = "FrmMain"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = False
    Option Explicit'以下在Form
    Private Sub Form_Load()
        Call EnableKBDHook
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        Call UnHookKBD
    End Sub'HookModule
    Option ExplicitDeclare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
    Public hnexthookproc As Long
    Public Const HC_ACTION = 0
    Public Const WH_KEYBOARD = 2Public Sub UnHookKBD()
        If hnexthookproc <> 0 Then
            UnhookWindowsHookEx hnexthookproc
            hnexthookproc = 0
        End If
    End SubPublic Function EnableKBDHook()
        If hnexthookproc <> 0 Then Exit Function
        hnexthookproc = SetWindowsHookEx(WH_KEYBOARD, AddressOf _
        MyKBHFunc, App.hInstance, 0)
        If hnexthookproc <> 0 Then EnableKBDHook = hnexthookproc
    End FunctionPublic Function MyKBHFunc(ByVal iCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        '这三个参数是固定的,不能动,而MyKBHFunc这个名称只要和
        'SetWindowsHookex()中 AddressOf後的名称一样便可,不一定叫什麽
        'wParam 是传入按了哪个key的virtual-key code
        '如果您将以下的两行un则所有键盘的输入皆没有作用
        'MyKBHFunc = 1 '吃掉信息
        MyKBHFunc = 0 '信息要处理
        If iCode < 0 Then
            MyKBHFunc = CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
            Exit Function
        End If
        If wParam = vbKeySnapshot Then  '侦测有没有按到PrintScreen键
            MyKBHFunc = 1               '在这个Hook便吃掉这个信息
            Debug.Print "haha" & "    " & wParam & "    " & lParam
        Else
            Call CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
        End If
    End Function