我想要弄ㄍ程式..例如連點:我ㄉ程式要按F9開始連點...F10關閉連點...請問我如何寫ㄋ??我有參考以下資料...不過就是無法關閉..
Option Explicit
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10

Private Sub Form_Load()
On Error Resume Next
'設定回呼函式
  PrevWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
Dim lResult As Long
  
  '重設回呼函式
  lResult = SetWindowLong(Me.hwnd, GWL_WNDPROC, PrevWndProc)
  '取消熱鍵
  lResult = UnregisterHotKey(Me.hwnd, 313)
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
mouse_event 2, 0, 0, 0, 0
mouse_event 4, 0, 0, 0, 0

End Sub
以下在模組:
Option Explicit
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long
Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal id As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Const WM_HOTKEY = &H312
Public Const GWL_WNDPROC = (-4)
Public Const IDHOT_SNAPDESKTOP = (-2)
Public Const IDHOT_SNAPWINDOW = (-1)
Public Const MOD_ALT = &H1
Public Const MOD_CONTROL = &H2
Public Const MOD_FMSYNTH = 4
Public Const MOD_MAPPER = 5
Public Const MOD_MIDIPORT = 1
Public Const MOD_SHIFT = &H4
Public Const MOD_SQSYNTH = 3
Public Const MOD_SYNTH = 2
Public PrevWndProc As Long
Sub main()
On Error Resume Next
Dim lResult As Long
  
  frmHotKey.Show
  '設定熱鍵為 F9
  lResult = RegisterHotKey(frmHotKey.hwnd, 313, 0, vbKeyF9)
End Sub
Function WndProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
  Dim lResult As Long
  If uMsg = WM_HOTKEY Then
    '熱鍵被按下, 將視窗設為Active
    lResult = SetForegroundWindow(hwnd)
    frmHotKey.Timer1.Interval = 1
  End If
  WndProc = CallWindowProc(PrevWndProc, hwnd, uMsg, wParam, lParam)
End Function
請問我如何得知現在是按下哪ㄍ按鍵ㄌㄋ...他ㄉ變數是哪一ㄍ?


arrow
arrow
    全站熱搜

    vbqa 發表在 痞客邦 留言(0) 人氣()