这是用VB6.0写的程序:
Private Sub Command1_Click()
Shell "notepad.exe", vbNormalFocus
AddHook
End SubPrivate Sub Form_Load()
num = 1
End SubPrivate Sub Form_Unload(Cancel As Integer)
DelHook
End Sub在新建一个模块,插入以下代码
VB code
Public Type KEYMSGS
       vKey As Long          '虚拟码  (and &HFF)
       sKey As Long          '扫描码
       flag As Long          '键按下:128 抬起:0
End Type
Public keyMsg As KEYMSGS
Public Const WH_KEYBOARD_LL = 13
Public lHook As Long
Public num As Long'消息
Public Const HC_ACTION = 0
Public Const HC_SYSMODALOFF = 5
Public Const HC_SYSMODALON = 4
'键盘消息
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105Public 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
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
                                                            ByVal ncode As Long, _
                                                            ByVal wParam As Long, _
                                                            lParam As Any) As Long
                                                            
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
                                                            (lpvDest As Any, _
                                                            ByVal lpvSource As Long, _
                                                            ByVal cbCopy As Long)Public Sub AddHook()
lHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf CallKeyHookProc, App.hInstance, 0)
End SubPublic Sub DelHook()
  UnhookWindowsHookEx lHook
End Sub
Public Function CallKeyHookProc(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long    If code = HC_ACTION Then
        CopyMemory keyMsg, lParam, LenB(keyMsg)
        Select Case wParam
            Case WM_SYSKEYDOWN, WM_KEYDOWN:
                If (keyMsg.vKey And &HFF) = vbKeyA Then '设置自定义按键
                    SendKeys num
                    num = num + 1
                    CallKeyHookProc = 1 '屏蔽按键
                End If
            Case WM_SYSKEYUP, WM_KEYUP:
        End Select
        
    End If
            
    If code <> 0 Then
        CallKeyHookProc = CallNextHookEx(0, code, wParam, lParam)
    End IfEnd Function用VB6.0写的程序,如何移植到VB2005中去也能同样运行?