Dim x As Integer
Private Sub Form_Load()
Timer1.Interval = 100 '0.1秒一次检查全局按键
a = False: b = False
End Sub
Private Sub Timer1_Timer()
If GetAsyncKeyState(vbKeyF1) Then '检测F1
If a = False Then
MsgBox "现在开始运行程序" '可以不用
Timer2.Interval = 1000 '1秒一次检测到没到预定时间
a = True
End If
Else
a = False
End If
If GetAsyncKeyState(vbKeyF2) Then '检测F2
If b = False Then
MsgBox "结束了````"
Timer2.Interval = 0
b = False
End If
Else
b = False
End If
End Sub
Private Sub Timer2_Timer()
If Time = "18:00:00" Then '注意你的系统时间格式是否显示的时候没有上下午(桌面右下角),如有则自己换一下(一般不用换的)
SendKeys "a" '按下a键,正如你的1键为a一样
ElseIf Time = "19:00:00" Then
SendKeys "b" '假设你的2键为b
End If
End Sub
'说明一下,简单代码我也给你做了个全局检测F1F2,不过按F2没有关闭程序,只关闭了计时器,你要是需要就自己加上关闭form1的代码,还有就是程序中说到的系统时间设置的问题,注意一下就行了.
如果想要直接开始就不管它,就去掉全局检测,直接用sendkeys就行,
```````````最后还有就是sendkeys函数时,要求你的游戏(不知道怎么说)必须获得焦点才行!如,以上代码是在18点时按下了键盘的小写a,但是如果我要求是在18点在某个游戏中按下a的话,前提当然是游戏必须是开着的.而且游戏窗口是获得焦点的```
使用定时器控件,在控件内编码!或者使用Windows api函数
或者使用循环,利用datadiff函数
你可以把下面代码保存为vbs文件:每隔15秒就会出现一个对话框,你可以根据你的需要进行修改!
dim i,dt
dt=now()
i=0
do until i>=20
i=datediff("s",dt,now())
if i>=15 then
msgbox "采集数据"
i=0
dt=now()
end if
loop
1、是的。 2、无需什么条件。 3、可以。 4、这是对于外部变量的引用,对于内部变量则直接使用。 5、画面名称.对象.对象属性。 6、可以。 7、对于外部变量,其读写要调用其read.Write方法。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)