FastKey.bas
上传用户:albinfu
上传日期:2021-08-24
资源大小:71k
文件大小:2k
源码类别:

杀毒

开发平台:

Visual Basic

  1. Attribute VB_Name = "FastKey"
  2. Public Declare Function SetWindowLong Lib "user32" _
  3.                 Alias "SetWindowLongA" _
  4.                 (ByVal hwnd As Long, _
  5.                 ByVal nIndex As Long, _
  6.                 ByVal dwNewLong As Long) _
  7.                 As Long
  8. Public Declare Function GetWindowLong Lib "user32" _
  9.                 Alias "GetWindowLongA" _
  10.                 (ByVal hwnd As Long, _
  11.                 ByVal nIndex As Long) _
  12.                 As Long
  13. Public Declare Function CallWindowProc Lib "user32" _
  14.                 Alias "CallWindowProcA" _
  15.                 (ByVal lpPrevWndFunc As Long, _
  16.                 ByVal hwnd As Long, _
  17.                 ByVal Msg As Long, _
  18.                 ByVal wParam As Long, _
  19.                 ByVal lParam As Long) _
  20.                 As Long
  21. '定义常数
  22. Public Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
  23. Public Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long
  24. Public Const GWL_WNDPROC = (-4)
  25. Public Const WM_QUERYENDSESSION = &H11
  26. Public Const WM_CLOSE = &H10
  27. Public Const MOD_ALT = &H1
  28. Public Const MOD_CONTROL = &H2
  29. Public Const MOD_SHIFT = &H4
  30. Public Const WM_HOTKEY = &H312
  31. '全局变量,存放控件标志性数据
  32. Public preWindProc As Long, Modifiers As Long
  33. Public m_AllowExit As Boolean
  34. Public uVirtkey As Long, idHotkey As Long
  35. Private Type taLong
  36. ll As Long
  37. End Type
  38. Private Type tzInt
  39. lWord As Integer
  40. hWord As Integer
  41. End Type
  42. Public Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  43. If Msg = WM_HOTKEY Then
  44. If wParam = idHotkey Then
  45. Dim lp As taLong, iz As tzInt
  46. lp.ll = lParam
  47. LSet iz = lp
  48. If (iz.lWord = Modifiers) And (iz.hWord = uVirtkey) Then
  49. Form1.Visible = True
  50. End If
  51. End If
  52. End If
  53. WndProc = CallWindowProc(preWindProc, hwnd, Msg, wParam, lParam)
  54. End Function