求一个vb小程序,很简单的时间小程序

2024-12-24 23:54:58
推荐回答(4个)
回答1:

不用Timer.改模块代码即可。
1.模块里面找到
Private lngHook As Long这一行,改成
Private lngHook As Long,oldTimer As Long
2.模块里面找到
If p.vkCode = vbKeyF10 Then
MsgBox "你按下了F10"
End If
这三行,换成:
If p.vkCode = vbKeyF10 and Timer - oldTimer > 30 Then
MsgBox "你按下了F10"
oldTimer = Timer
End If

这样你两次快捷键按下间隔小于30秒时候将不弹出对话框

回答2:

用timer控件不费时,也可以不用,直接引用电脑自己的时间来判断中间是否已过去30秒.

回答3:

If p.vkCode = vbKeyF10 Then
if not vbkeydownd then
OldTime=timer
VbkeyDownB=true
end if
else
if VbkeyDownB then
if (timer-oldTime)>30 then
msgbox "够30秒了"
end if
end if
VbkeyDownB=false
end if

这里需要 将 VbkeyDownB 和 OldTime 做一个 全局变量的声明
并且 看一看 timer 的格式 有的系统的 timer 为最小单位为秒 有的系统 为最小单位为毫秒 但是一般的系统都是默认最小单位为秒

最后在不上一句 这程序写的有些复杂 你大可以使用 GetAsyncKeyState 来判断 VbkeyF10键是否按下,你的方法不错很标准,不过要求不高的话可以试试 GetAsyncKeyState

回答4:

Dim seconds

Private Sub Command1_Click()
Timer1.Enabled = True
Command1.Enabled = False
End Sub

Private Sub Form_Load()
seconds = 30
End Sub

Private Sub Timer1_Timer()
seconds = seconds - 1
Command1.Caption = "不可用,倒记时:" & seconds
If seconds = 0 Then
Command1.Enabled = True
Command1.Caption = "30 Second"
seconds = 30
Timer1.Enabled = False
End If
End Sub