?? keyhook.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 + -