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

📄 keyhook.bas

📁 OpenPlayer代码
💻 BAS
字号:
Attribute VB_Name = "KeyHook"
Option Explicit
'=====================================================
'定义快捷键
'下面的快捷键存在冲突:(
'=====================================================

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
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
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10
Public Const VK_CONTROL = &H11
Public Const VK_ATTN = &HF6

Global hHook As Long
Global KeyUpDownEnable As Boolean
Global bDisableSortKey As Boolean

Function KeyboardProc(ByVal idHook As Long, ByVal lParam As Long, ByVal wParam As Long) As Long
    Dim KeyState As Boolean
    
    If idHook < 0 Or bDisableSortKey Then
        '调用下一个Hook
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        KeyboardProc = CallNextHookEx(hHook, idHook, 1, 0)
        KeyState = (GetKeyState(VK_CONTROL) And &HF0000000)    '取得Ctrl键的状态
    
        Select Case lParam
             '=====================================================
             '显示控制台 Ctrl + W
             '=====================================================
             Case Asc("W") And KeyState
                   'SetWindowPos Form1.hWnd, -2, 0, 0, 0, 0, 3   '取消总在最前面
                   ControlForm.Show
                   ControlForm.WindowState = 0
             '=====================================================
             '显示播放区  Ctrl + Y
             '=====================================================
             Case Asc("Y") And KeyState
                 If Play.ShockwaveFlash1.Movie <> "" Then
                     Play.Show
                     Play.WindowState = 0
                 End If
             '=====================================================
             ' 总在最前面 Ctrl + T
             '=====================================================
             Case Asc("T") And KeyState
                If Play.ShockwaveFlash1.Movie <> "" Then
                    If ControlForm.onTop.Checked = True Then
                         SetWindowPos Play.hwnd, -2, 0, 0, 0, 0, 3
                         ControlForm.onTop.Checked = False
                     Else
                        SetWindowPos Play.hwnd, -1, 0, 0, 0, 0, 3
                        ControlForm.onTop.Checked = True
                     End If
                End If
            '=====================================================
            'F3 搜索/停止搜索
            '=====================================================
             Case 114    'F3
                 ControlForm.SearchTimer.Enabled = True
            '=====================================================
            ' Ctrl + F 全屏
            '=====================================================
             Case Asc("F") And KeyState
                    If isFullScreen = False Then
                        Call ControlForm.doFullScreen
                    End If
            '=====================================================
            ' Esc 返回全屏
            '=====================================================
             Case 27
                    If isFullScreen = True Then
                        Call ControlForm.doFullScreen
                    End If
             
             '=====================================================
             Case 37
                    If UCase(Screen.ActiveControl.Name) = UCase("ShockwaveFlash1") And Play.ShockwaveFlash1.Movie <> "" Then
                      Play.ShockwaveFlash1.Back
                    End If
             '=====================================================
             Case 39
                    If UCase(Screen.ActiveControl.Name) = UCase("ShockwaveFlash1") And Play.ShockwaveFlash1.Movie <> "" Then
                        Play.ShockwaveFlash1.Forward
                    End If
             '=====================================================
             Case Asc("S")
                    If Play.ShockwaveFlash1.Movie <> "" And InStr(UCase(Screen.ActiveControl.Name), "TEXT") = 0 Then
                         Play.ShockwaveFlash1.Stop
                    End If
             '=====================================================
             Case Asc("P")
                    If Play.ShockwaveFlash1.Movie <> "" And InStr(UCase(Screen.ActiveControl.Name), "TEXT") = 0 Then
                        Play.ShockwaveFlash1.Play
                        ControlForm.SpeedTimer.Enabled = False
                    End If
        End Select
   End If
End Function

⌨️ 快捷键说明

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