itzyx 发表于 2020-8-7 15:07:16

已解决 如何根据inputbox 输入启动时间,启动目标运行程序

本帖最后由 itzyx 于 2020-8-9 12:39 编辑

Local $rt = InputBox("预约","请输入测试物品的启动时间")

#include <Date.au3>
#include <MsgBoxConstants.au3>

;定时功能主程序==============================================================
Local $iDateCalc = -1                                                                                                                              ;设定初值,进入循环和判断
While $iDateCalc < 0                                                                                                                              ;判断设定时间是否到达
   Local $iDateCalc = _DateDiff('n', "$rt", _NowCalc())                            ;获取当前时间,并计算当前时间与设定时间的差值
WEnd
Sleep(1000)
Run("C:\Program Files (x86)\?\?.exe");到达设定时间点打开软件



请各位大佬,帮忙纠正一下,哪里有问题

862228699 发表于 2020-8-7 16:04:51

用WINDOWS任务计划。

itzyx 发表于 2020-8-7 16:15:28

862228699 发表于 2020-8-7 16:04
用WINDOWS任务计划。

因为我才学没几天,不太懂怎么引用WINDOWS任务计划 ,能麻烦指定清楚一下吗?万分感谢!

862228699 发表于 2020-8-7 16:21:33


itzyx 发表于 2020-8-7 16:59:02

862228699 发表于 2020-8-7 16:21


大佬你推荐的WINDOWS任务计划我看了一下确实可行,但是能不能通过编写脚本,更便捷的预订启动的时间, 上面写的脚本,时间设置固定值是可以运行的,但是设置成根据inputbox 输入的变量 $rt ,就不可行了,软件会立马启动,不会按照设置的时间启动。

afan 发表于 2020-8-7 18:05:34

本帖最后由 afan 于 2020-8-7 18:25 编辑

#include <Date.au3>

Local $sTimes = InputBox('预约', '请输入测试物品的启动时间(时分秒)')
If @error Then Exit
Local $aTimes = StringRegExp($sTimes, '(\d\d?)\D+(\d\d?)\D+(\d\d?)', 1)      ;带分隔符3段时间
If @error Then
      $aTimes = StringRegExp($sTimes, '(\d\d)(\d\d)(\d\d)', 1)      ;不带分隔符6位数时间
      If @error Then Exit MsgBox(48, '', '时间格式错误')
EndIf
If $aTimes = '' Then $aTimes = '00'
$sTimes = StringFormat('%s/%s/%s %s:%s:%s', @YEAR, @MON, @MDAY, $aTimes, $aTimes, $aTimes)
Local $iDateCalc = _DateDiff('s', _NowCalc(), $sTimes) ;获取当前时间,并计算当前时间与设定时间的差值
Local $iTs = TimerInit()
If $iDateCalc > 10 Then Sleep(($iDateCalc - 10) * 1000)
Do
      Sleep(250)
Until TimerDiff($iTs) >= $iDateCalc * 1000
MsgBox(0, $sTimes, '时间到')
;~ Run('C:\Program Files (x86)\?\?.exe') ;到达设定时间点打开软件

itzyx 发表于 2020-8-9 12:37:15

afan 发表于 2020-8-7 18:05


:face (36):感谢大佬, 我写的问题找到了,是因为自定义的函数 加了双引号,不过你这个更完善,更好,厉害厉害
页: [1]
查看完整版本: 已解决 如何根据inputbox 输入启动时间,启动目标运行程序