VB求教大佬,下面函数如何让按键点击到弹起前只执行一次而不是持续执行。

Option Explicit
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Const WH_KEYBOARD = 13
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, lParam As Any) As Long
Public hNextHookProc As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const BM_CLICK = &HF5
Public Type KBDLLHOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End Type
Public Sub UnHookKBD()
On Error Resume Next
If hNextHookProc <> 0 Then
UnhookWindowsHookEx hNextHookProc
hNextHookProc = 0
End If
End Sub
Public Function EnableKBDHook()
On Error Resume Next
If hNextHookProc <> 0 Then
Exit Function
End If
hNextHookProc = SetWindowsHookEx(WH_KEYBOARD, AddressOf MyKBHFunc, App.hInstance, 0)
If hNextHookProc <> 0 Then
EnableKBDHook = hNextHookProc
End If
End Function
Public Function MyKBHFunc(ByVal iCode As Long, ByVal wParam As Long, lParam As KBDLLHOOKSTRUCT) As Long
On Error Resume Next
MyKBHFunc = 0
If iCode < 0 Then
MyKBHFunc = CallNextHookEx(hNextHookProc, iCode, wParam, lParam)
Exit Function
End If
If lParam.vkCode = vbKeyHome Then
SendMessage 主面板.Command1.hwnd, &HF5, 0, ByVal 0
ElseIf lParam.vkCode = vbKeyEnd Then
End If
'MyKBHFunc = 1
Call CallNextHookEx(hNextHookProc, iCode, wParam, lParam)
End Function

你按键点击的命令是用if 判断控制的 你可以在此判断条件的基础上再加一个条件比如b=false才执行按钮点击

If lParam.vkCode = vbKeyHome Then
    if b=false then 
        b=true
        SendMessage 主面板.Command1.hwnd, &HF5, 0, ByVal 0
    end if
    ElseIf lParam.vkCode = vbKeyEnd Then

  End If

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-17
视频是现在电脑中多媒体系统中的重要一环。为了适应储存视频的需要,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,以方便同时回放。由于不同的播放器支持不同的视频文件格式,或者计算机中缺少相应格式的解码器,或者一些外部播放装置(比如手机、MP4等)只能播放固定
相似回答