找回密码
 加入
搜索
查看: 8014|回复: 17

[AU3基础] 为什么定时关机不能用(已解决)

 火.. [复制链接]
发表于 2013-4-24 08:20:21 | 显示全部楼层 |阅读模式
本帖最后由 1361739590 于 2013-4-30 08:31 编辑

我不是问关机怎么写,而是为什么这样没用,以后再碰到类似不能用的问题好解决。
写一个关机的,早上4:20关机。如果晚上打开,到第二天早上不会关机。把@HOUR = 04改为当天晚上21点,到时候会关机的。将电脑到时间自动休眠等关掉了,只开了关闭显示屏。不知道为什么。谢谢回复。
While 1
           If @HOUR = 04 Then
                   If @MIN >= 20 Then
                           Shutdown(1)
                   EndIf
           EndIf
           Sleep(2000)
        WEnd
发表于 2013-4-24 08:46:58 | 显示全部楼层
;定时关机
at 04:20 Shutdown -s

;取消关机
Shutdown -a
发表于 2013-4-24 08:47:49 | 显示全部楼层
@HOUR = 04这个是什么改成@HOUR = 4试试看
 楼主| 发表于 2013-4-24 09:05:55 | 显示全部楼层
回复 3# netegg


    我用现在时间 @HOUR = 09 来测试是可以的。
发表于 2013-4-24 09:43:24 | 显示全部楼层

#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
#region ### START Koda GUI section ### Form=
Local $sHOUR = "00|01|02|03|04|05|06|07|08|09|10|12|13|14|15|16|17|18|19|20|21|22|23|24"
Local $sMIN = "00|01|02|03|04|05|06|07|08|09|10|12|13|14|15|16|17|18|19|20|21|22|23|24|" & _
                "25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|" & _
                "49|50|51|522|53|54|55|56|57|58|59"
$Form1 = GUICreate("定时关机", 187, 116, 302, 181)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
$Label1 = GUICtrlCreateLabel("时间:", 16, 40, 31, 17)
$Label2 = GUICtrlCreateLabel(":", 104, 40, 31, 17)
$Combo1 = GUICtrlCreateCombo("", 55, 37, 41, 25, BitOR($GUI_SS_DEFAULT_COMBO, 0x0003))
GUICtrlSetData(-1, $sHOUR, "00")
$Combo2 = GUICtrlCreateCombo("", 120, 37, 41, 25, BitOR($GUI_SS_DEFAULT_COMBO, 0x0003))
GUICtrlSetData(-1, $sMIN, "00")
$Button1 = GUICtrlCreateButton("定时关机", 16, 80, 55, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
$Button2 = GUICtrlCreateButton("取消关机", 104, 80, 55, 25)
GUICtrlSetOnEvent(-1, "Button2Click")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
        Sleep(10)
WEnd

Func Button1Click()
        $time = GUICtrlRead($Combo1) & ":" & GUICtrlRead($Combo2)
        Run(@ComSpec & " /c " & 'at ' & $time & ' Shutdown -s', "", @SW_HIDE)
EndFunc   ;==>Button1Click

Func Button2Click()
        Run(@ComSpec & " /c " & 'Shutdown -a', "", @SW_HIDE)
EndFunc   ;==>Button2Click

Func Form1Close()
        Exit
EndFunc   ;==>Form1Close


 楼主| 发表于 2013-4-24 10:26:17 | 显示全部楼层
回复 5# 鸟人


   谢谢  上面那个为什么没用呢??
发表于 2013-4-24 14:02:18 | 显示全部楼层
要检查很简单啊 你把当前时间改为4点再执行试试看 如果可以执行 但是到了真正的04点不执行 那就真的是休眠什么引起的 如果这样都不执行 那就每行加个msgbox 看是哪一行应该执行却没有执行。
反正我这里试的改成4点58 是可以执行的。
发表于 2013-4-24 14:31:54 | 显示全部楼层
本帖最后由 鸟人 于 2013-4-24 14:36 编辑

都朦了, What would you do?

AdlibRegister('a',1000)
While 1
        Sleep(1)
WEnd
Func a()
        If @HOUR = 14 Then
                If @MIN = 30 Then
                        AdlibUnRegister('a')
                        $Msg=MsgBox(36,'','关机?')
                        If $Msg =6 Then Shutdown(1)                        
                EndIf
        EndIf
EndFunc   ;==>a
 楼主| 发表于 2013-4-24 16:09:50 | 显示全部楼层
回复 7# zch11230


    謝謝  剛開始也是以為休眠的問題  後來在電源管理裏面設置了  不讓其休眠,不知道這樣設置有沒有用。所以問問看還有沒有其他的原因的。
 楼主| 发表于 2013-4-24 16:09:57 | 显示全部楼层
回复 7# zch11230


    謝謝  剛開始也是以為休眠的問題  後來在電源管理裏面設置了  不讓其休眠,不知道這樣設置有沒有用。所以問問看還有沒有其他的原因的。
 楼主| 发表于 2013-4-24 16:10:12 | 显示全部楼层
回复 7# zch11230


    謝謝  剛開始也是以為休眠的問題  後來在電源管理裏面設置了  不讓其休眠,不知道這樣設置有沒有用。所以問問看還有沒有其他的原因的。
发表于 2013-4-25 09:56:12 | 显示全部楼层
回复 11# 1361739590

明明有更方便简单的办法,为什么要去试图自己写个定时的功能呢? 你只要写个一句话的代码,功能就是立即shutdown, 当然也可以加上一些参数来限制其是关机还是休眠等等,总之是立即执行的。然后你把这个代码所在的文件安排到计算机的计划任务中去,在这里定义这个文件的执行时间(相当灵活),不是很简单就搞定了吗?何必要脱了裤子放屁呢!
 楼主| 发表于 2013-4-25 11:27:36 | 显示全部楼层
回复 12# 森林清风


    我把问题再问的清楚一些吧。我不是问关机怎么写,而是为什么这样没用,以后再碰到类似不能用的问题好解决。
 楼主| 发表于 2013-4-29 08:37:08 | 显示全部楼层
回复 3# netegg


    大神  请问Shutdown(1)是不是有的时候不能用,之前有点忙没测试,昨天晚上测试了一下,发现可以进入If语句,执行If里面的语句(加了一句写ini的文件的),但是进去后不会执行Shutdown(1)的功能。
发表于 2013-4-29 09:58:21 | 显示全部楼层
Shutdown(1)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-29 05:31 , Processed in 0.127063 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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