VB按键触发
我用VB写了一个自动按键小程序,我想给它设定个启动热键,就是打开窗体后程序不工作,只有当按了ALT+X后才进行自动按键工作,具体代码如下:
Private Sub Form_Load()
Timer1.Interval = 500
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
SendKeys "{x}"
SendKeys "{down}"
SendKeys "{x}"
End Sub
另外我想给这个程序的窗体上加个文本框,用来输入计时器控件的毫秒数,如何来做,请高人指点,我是新手,向往学习,谢谢!
答案:用API吧按一次开启,再按停止
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Sub Form_Load()
Timer2.Interval = 10
Timer2.Enabled = True
Timer1.Enabled = False '程序启动时处于停止状态
Text1 = 1000 '默认1秒发送一次按键
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0 '文本框只能输入数字
End Sub
Private Sub Text1_Change()
Text1 = Val(Text1) '文本框内粘贴入其他字符时转化为数字
End Sub
Private Sub Timer1_Timer()
SendKeys "{x}"
SendKeys "{down}"
SendKeys "{x}"
End Sub
Private Sub Timer2_Timer()
If GetKeyState(18) <> 0 And GetKeyState(88) <> 0 Then '按下AIT+X
Timer1.Interval = Text1
Timer1.Enabled = Not Timer1.Enabled
End If
End Sub
最好是这样:
你可以通过Timer1.Interval = val(Text1.Text)实现啊
我认为你的设计思路有问题
定义一个局部变量Bool类型ISCanWork=false
采用window消息事件,捕获按键,如果按键="Alt+X",那么将ISCanWork=true;
所有事件前判断ISCanWork是否为true,如果不是,则退出事件。
另外,还有一种方法,在按这个组合键前,窗体.enable=false,按键后设置为true
上一个:VB 代码请教
下一个:vb的编程!