【问题标题】:Display timer as well as "Pause / Resume / Stop" Button显示计时器以及“暂停/恢复/停止”按钮
【发布时间】:2013-06-02 03:44:30
【问题描述】:

我有一个小脚本,基本上每 4 分钟为我按一次“F2”,持续 8 小时用于活动应用程序。

因为我的 VB 技能非常有限,所以它很有效,而且非常基础。

我现在想到了一个新项目,但不知道是否可行或如何解决。

我基本上想要一个显示计时器的小窗口以及一个暂停、恢复和停止按钮。如果我可以像在另一个应用程序中一样拥有这些按钮,那将是一个巨大的优势,我不想按下 F2 按钮。

这是我所拥有的:

Dim WshShell

Set WshShell = CreateObject("WScript.Shell")

dim ti
ti=timer

Do

WshShell.SendKeys "{F2}"

For AA = 1 To 9

  IF AA = 8 Then BB = "in  30 seconds"
  IF AA = 9 Then BB = "now !"

WScript.Sleep 30000

Dim oShell
Set oShell= CreateObject("Wscript.Shell")
IF AA = 8 OR AA = 9 Then oShell.Popup " Refresh ... " & BB & " ",2,"Remind"

Next 

Loop while (timer-ti)<8*60*60

MsgBox "VB End: " & Time()

谢谢

【问题讨论】:

  • 因为我不确定谁能提供帮助 ;)

标签: vb.net vba vbscript vb6


【解决方案1】:

好的,只是一个高级别的回答,因为时间不早了,我要去睡觉了。

在您的表单上,放置一个计时器控件。将其设置为 1000 间隔(1 秒)。
还可以放置开始和暂停按钮。
这是运行它的代码。

Dim IsRunning As Boolean

Private Sub cmdPause_Click()
    IsRunning = False
End Sub

Private Sub cmdStart_Click()
    IsRunning = True
End Sub

Private Sub Timer1_Timer()
    Static LastTime As Date
    If IsRunning Then
        If DateDiff("n", lastdate, Now()) >= 4 Then
            'sendkeys
            LastTime = Now()
        End If
    End If
End Sub

IsRunning 变量位于任何过程之外,称为共享变量。此表单中的任何程序都可以看到它。开始和暂停按钮将其值变为真或假。

定时器事件将每秒运行一次。在这里,我们正在检查 IsRunning 是否为真,以及 4 分钟是否已过期。如果是这样,那么您可以运行您的发送密钥。

【讨论】:

  • Pause 除了延迟 'sendkeys 直到再次单击 start 之外,实际上不会做任何事情。然而,目前尚不清楚海萨姆希望暂停完成什么。这可能是我要走的路线。
  • 这就是我对 OP 想要的解释。一种在他在另一个程序中工作时不发送密钥的方法。停止不会做任何暂停按钮尚未做的事情。或者只需一个按钮即可启动和停止代码。这应该足以让他开始。
猜你喜欢
  • 1970-01-01
  • 2019-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多