当前位置:编程学习 > VB >>

急求一段连按程序

例如,单按一下回车,会变成连按固定次数。急求 --------------------编程问答-------------------- keyboard hook
sendkeys --------------------编程问答-------------------- 楼上,可以详细点,吗? --------------------编程问答-------------------- 把窗体的KeyPreview属性设为True
试一下下面的代码行不行?

Private Sub Form_Keypress(KeyAscii As Integer)
    Dim n As Integer    '连按固定次数
    Dim i As Integer
    
    n = 5
    '按下回车,连按5次
    If KeyAscii = vbKeyReturn Then
        For i = 1 To n
          SendKeys "{enter}"
        Next i
    End If
End Sub


--------------------编程问答-------------------- lz的不用这么复杂,把按钮中的代码放到一个过程中,然后在按钮中循环调用就可以了 --------------------编程问答-------------------- 3楼的程序会造成死循环的,因为当你连续sendkeys,第3下又会造成keypress事件,从新循环。。 --------------------编程问答-------------------- Private m_bFlag As Boolean

Private Sub Form_Load()
     m_bFlag = False
End Sub

Private Sub Form_Keypress(KeyAscii As Integer)
  Dim n As Integer '连按固定次数
  Dim i As Integer
    
  n = 5
  
  If m_bFlag = False Then
     m_bFlag = True
    '按下回车,连按5次
    If KeyAscii = vbKeyReturn Then
        For i = 1 To n
            SendKeys "{enter}"
        Next i
    End If
     m_bFlag = False
  End If

End Sub


这样再试下行不? --------------------编程问答-------------------- 楼上还是会造成死循环的,你的布尔变量没起到作用,当固定五次的第五次enter作为实参和keyascii形参结合再次进入keypress事件后m_bFlag在上一轮已被置为FALSE,和你form load事件作用相同,再次进入以m_bFlag = False 为条件的循环 --------------------编程问答-------------------- 如果我想用来作第三方软件使用,例如在记事本实现连按功能,显然用form的keypress事件是不能的,应该怎么办? --------------------编程问答-------------------- 这样试下


Private m_bFlag As Boolean

Private Sub Form_Load()
  m_bFlag = False
End Sub

Private Sub Form_Keypress(KeyAscii As Integer)
  Dim n As Integer '连按固定次数
  Dim i As Integer

  Print "按了一次回车键"
    
  If m_bFlag = False Then
    m_bFlag = True
    n = 5
    '按下回车,连按5次
    If KeyAscii = vbKeyReturn Then
        For i = 1 To n
            Form_Keypress (vbKeyReturn)
        Next i
    End If
    m_bFlag = False
  End If
End Sub
--------------------编程问答-------------------- 用来作第三方软件使用,这个就要用到系统API了。你可以这样:
1.用FindWindow找到要控制的窗体的句柄
2.然后向这个窗体的句柄发送键盘消息

或者

1.用FindWindow找到要控制的窗体的句柄
2.用SetForegroundWindow将该窗口激活
3.用SendKeys模拟按键 --------------------编程问答-------------------- 要是自己用的话,就用按键精灵吧。没必要专门写个程序
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,