⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cwnd_gouzi.bas

📁 本代码只供学习使用
💻 BAS
字号:
Attribute VB_Name = "cwnd_gouzi"
Option Explicit

Public 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, _
   ByVal lParam As Long) As Long
   
Public Declare Sub CopyMemory Lib "kernel32" _
   Alias "RtlMoveMemory" _
  (pDest As Any, _
   pSource As Any, _
   ByVal cb As Long)

Public Declare Function GetKeyboardState Lib "user32" _
   (kbArray As KeyboardBytes) As Long

Public Declare Function GetKeyState Lib "user32" _
  (ByVal nVirtKey As Long) As Integer

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Private Declare Function GetForegroundWindow Lib "user32" () As Long


Public m_hDllKbdHook As Long       'public variable holding
                                   'the handle to the hook procedure
                               
Public Const WH_KEYBOARD_LL As Long = 13 'enables monitoring of keyboard
Public Const WH_KEYBOARD As Long = 2
                                    'input events about to be posted
                                    'in a thread input queue
                                       
Private Const HC_ACTION As Long = 0 'wParam and lParam parameters
                                    'contain information about a
                                    'keyboard message
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2


Private Const VK_CAPITAL As Long = &H14
Private Const VK_NUMLOCK As Long = &H90
Private Const VK_SCROLL As Long = &H91
Private Const VK_F1 = &H70
Private Const VK_F2 = &H71
Private Const VK_F3 = &H72
Private Const VK_F4 = &H73
Private Const VK_F5 = &H74
Private Const VK_F6 = &H75
Private Const VK_F7 = &H76
Private Const VK_F8 = &H77
Private Const VK_F9 = &H78
Private Const VK_F10 = &H79  ' This example uses F10
Private Const VK_F11 = &H7A  ' This example uses F11
Private Const VK_F12 = &H7B  ' This example uses F12
Private Const VK_Num0 = &H60
Private Const VK_Num1 = &H61
Private Const VK_Num2 = &H62
Private Const VK_Num3 = &H63
Private Const VK_Num4 = &H64
Private Const VK_Num5 = &H65
Private Const VK_Num6 = &H66
Private Const VK_Num7 = &H67
Private Const VK_Num8 = &H68
Private Const VK_Num9 = &H69
Private Const VK_NumAdd = &H6B
Private Const VK_PageUp = &H21      'Page Up 键
Private Const VK_PageDown = &H22    'Page Down 键

'vbKeyNumpad0 0x60 小键盘 0 键
'vbKeyNumpad1 0x61 小键盘 1 键
'vbKeyNumpad2 0x62 小键盘 2 键
'vbKeyNumpad3 0x63 小键盘 3 键
'vbKeyNumpad4 0x64 小键盘 4 键
'vbKeyNumpad5 0x65 小键盘 5 键
'vbKeyNumpad6 0x66 小键盘 6 键
'vbKeyNumpad7 0x67 小键盘 7 键
'vbKeyNumpad8 0x68 小键盘 8 键
'vbKeyNumpad9 0x69 小键盘 9 键
'vbKeyMultiply 0x6A 小键盘 * 键
'vbKeyAdd 0x6B 小键盘 + 键
'vbKeySeparator 0x6C 小键盘回车键
'vbKeySubtract 0x6D 小键盘 - 键
'vbKeyDecimal 0x6E 小键盘 . 键
'vbKeyDivide 0x6F 小键盘 / 键

Private Const LLKHF_UP As Long = &H80&     'test the transition-state flag

Public Type KeyboardBytes
   kbByte(0 To 255) As Byte
End Type

Private Type KBDLLHOOKSTRUCT
  vkCode As Long        'a virtual-key code in the range 1 to 254
  scanCode As Long      'hardware scan code for the key
  flags As Long         'specifies the extended-key flag,
                        'event-injected flag, context code,
                        'and transition-state flag
  time As Long          'time stamp for this message
  dwExtraInfo As Long   'extra info associated with the message
End Type

Dim kbdllhs As KBDLLHOOKSTRUCT
  
  
  
  
  
  
  
  
  
  
  
  
  
  
Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If nCode = HC_ACTION Then
        
        Call CopyMemory(kbdllhs, ByVal lParam, Len(kbdllhs))
        If (kbdllhs.flags And LLKHF_UP) Then
            'Dim Topid As Long
            'Topid = GetForegroundWindow
            'If Topid = FrmMain.hwnd Then
                Select Case kbdllhs.vkCode
                    Case VK_F12
                        If Form1.Check1.Value = 0 Then
                            GameFormHwnd = FindWindow("ElementClient Window", "Element Client")
                            If GameFormHwnd = 0 Then
                                Started = False
                                Form1.Check1.Value = 0
                                Form1.Timer2.Enabled = False
                                Form1.Timer3.Enabled = False
                                MsgBox "请确认是否已打开游戏!"
                            Else
                                hptime = 0
                                mptime = 0
                                hpused = 0
                                mpused = 0
                                Started = True
                                Form1.Check1.Value = 1
                                GetWindowThreadProcessId GameFormHwnd, hProcId
                                Form1.Timer2.Enabled = True
                                Form1.Timer3.Enabled = True
                            End If
                        Else
                            Started = False
                            Form1.Timer2.Enabled = False
                            Form1.Timer3.Enabled = False
                            Form1.Check1.Value = 0
                        End If
                    'Case VK_F1
                    'Case VK_F2
                    'Case VK_F3
                    'Case VK_F4
                    'Case VK_F5
                    'Case VK_F6
                    'Case VK_F7
                    'Case VK_F8
                    'Case VK_F9
                    'Case VK_F10
                    Case Else
                        LowLevelKeyboardProc = CallNextHookEx(m_hDllKbdHook, nCode, wParam, lParam)
                    
                    
                        
                End Select
            'End If      'topid
        End If  'If (kbdllhs.flags And LLKHF_UP) Then
        
    End If  'nCode = HC_ACTION
    'LowLevelKeyboardProc = CallNextHookEx(m_hDllKbdHook, nCode, wParam, lParam)
End Function






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -