本帖最后由 fayuOmg 于 2022-2-9 21:37 编辑
已改用Gui的方式完美解决,此帖封闭。
最近写一个每天自动关机的脚本,关机前弹出提示,用户可以选择延时关机或者当天不关机。
但是如果在弹出提示框时系统处于锁屏状态,那么这个对话框的倒计时就时效了。
第二天上班发现桌面一直有个关机的提示,代码如下:
Local $sTheDay = @YDAY ;定义日期,隔天的话@HOUR变量恢复为18
Local $sNotDay = @YDAY ;定义日期,用于判断是否取消了当天的关机命令
Local $iTheHour = 18
Local $iTimes2Reg = 1
While 1
If $sTheDay <> @YDAY Then ;日期变更时,恢复为18点弹出关机提示
$iTheHour = 18
$sTheDay = @YDAY
$sNotDay = @YDAY
EndIf
;17点整先弹出一次提示
If @HOUR = 17 And @MIN = 00 and @SEC = 00 Then
Local $iDelayorNot = MsgBox(131075,"自动关机の提醒v2","提示的内容,这里省略" 《xxxx信息通信公司》",1800)
Switch $iDelayorNot
Case 2 ;取消
$sNotDay = $sNotDay + 1
Case 7 ;否
$iTheHour = $iTheHour + 2
EndSwitch
EndIf
;18点整再提示
If @HOUR = $iTheHour And @MIN = 00 and (@SEC = 00 Or @SEC = 01) and $sNotDay = @YDAY Then
Local $iDelayorNot = MsgBox(131075,"自动关机の提醒v2","这里是提示内容,省略 ",600)
Switch $iDelayorNot
Case 2 ;取消
$sNotDay = $sNotDay + 1
Case 7 ;否
$iTheHour = $iTheHour + 2
If $iTheHour>=24 Then $iTheHour = $iTheHour - 24
EndSwitch
EndIf
;15分钟后关机
If @HOUR = $iTheHour And @MIN = 15 and (@SEC = 00 Or @SEC = 01) and $sNotDay = @YDAY Then
Shutdown(5)
EndIf
Sleep(500)
WEnd
对话框界面如下:
|