找回密码
 加入
搜索
查看: 961|回复: 7

[AU3基础] Msgbox的超时在系统锁屏状态会中止,有没有锁屏下仍能倒计时的方法?

[复制链接]
发表于 2022-2-8 11:43:15 | 显示全部楼层 |阅读模式
本帖最后由 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


对话框界面如下:

 楼主| 发表于 2022-2-8 11:44:00 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2022-2-8 19:11:15 | 显示全部楼层
自己做个界面当成你的msgbox用啦。一样的。
发表于 2022-2-9 10:47:58 | 显示全部楼层
印象中,以登录用户运行的程序在锁屏后会暂停,直到进入桌面后才会继续运行。以服务的形式运行的话,应该可以在锁屏状态下继续,但是如此问题又来了,若要与用户交互,可能还需要服务创建一个运行在当前桌面窗口站的进程,用来与服务进程进行交互
 楼主| 发表于 2022-2-9 10:59:11 | 显示全部楼层
tubaba 发表于 2022-2-9 10:47
印象中,以登录用户运行的程序在锁屏后会暂停,直到进入桌面后才会继续运行。以服务的形式运行的话,应该可 ...

是的,需要用户确认,就比较麻烦。

我再想,要不要检测是否处于锁屏状态,如果是锁屏就不提示,到时候直接关机
发表于 2022-2-9 11:25:05 | 显示全部楼层
不行吧,一旦锁屏,桌面进程就暂停了,如何检测。分享一大牛用汇编写的 clock,收藏版本

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

点评

好的,谢谢  发表于 2022-2-9 17:17
 楼主| 发表于 2022-2-9 21:35:13 | 显示全部楼层
绿色风 发表于 2022-2-8 19:11
自己做个界面当成你的msgbox用啦。一样的。

已改用Gui方式完美解决,谢谢风老大提点。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 19:42 , Processed in 0.076119 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表