[au3]#include #include #include #include #include #include #include #Include $Exists = \"定时重启\";判断是否只运行一个程序 If WinExists($Exists) Then MsgBox(32,\"温馨提醒您:\注意已经运行一个程序了!\") Exit EndIf AutoItWinSetTitle($Exists);修改程序窗口的标题名 ;FileCreateShortcut(@AutoItExe,@DesktopCommonDir&\"\\定时工具\");自动在桌面创建快捷方式! $Reate0 = GUICreate(\"服务器定时重启工具\主窗口 $Button1 = GUICtrlCreateButton(\"清除\按钮 $Button2 = GUICtrlCreateButton(\"定时\ $Button4 = GUICtrlCreateButton(\"开机运行\ $Button3 = GUICtrlCreateButton(\"关于作者\ $Combo1 = GUICtrlCreateCombo(\"\组合列表 GUICtrlSetData($Combo1,\"关机|重启|待机|休眠|强行关机|强行重启\重启\") $Group1 = GUICtrlCreateGroup(\"\美化框 $Date1 = GUICtrlCreateDate(\"\16, 95, 90, 20, BitOR($DTS_UPDOWN,$DTS_TIMEFORMAT,$WS_TABSTOP));时间选择控件 $Label1 = GUICtrlCreateLabel(\"执行时间: 暂时未设置定时任务\ GUICtrlSetColor(-1,0xff0033);美化字体颜色 $Label2 = GUICtrlCreateLabel(\"当前时间:\ GUICtrlSetColor(-1,0xff0033);美化字体颜色 $Reate1 = GUICreate(\"关于\关于说明窗口 $Button10 = GUICtrlCreateButton(\"关机\ $Button11 = GUICtrlCreateButton(\"重启\ $Button12 = GUICtrlCreateButton(\"清除启动\ $Label3 = GUICtrlCreateLabel(\"修改自DuXing47兄的定时关机工具\20) $Label4 = GUICtrlCreateLabel(\"QQ:780095\ $Label5 = GUICtrlCreateLabel(\"欢迎访问破帽的QQ空间,点击进入\ GUICtrlSetColor(-1,0xff0033) GUISwitch($Reate0);切换用于GUI函数的“当前”窗口 GUISetState(@SW_SHOW) $R1 = \"\" $T1 = \"\" $T2 = \"\" $T3 = \"\" $T4 = \"\" If RegRead(\"HKEY_LOCAL_MACHINE\\SOFTWARE\\TIME\时间\") <> \"\" Then;读取注册表指定的值 opt(\"TrayIconHide\ Opt(\"TrayMenuMode\ GUISetState(@SW_HIDE,$Reate0) TrayTip(\"服务器定时重启工具\程序已经在运行中,点击这里弹出窗口!\ EndIf While 1 $Tray = TrayGetMsg();得到一个系统托盘图标项目产生的事件. $msg = GUIGetMsg(1);捕获窗口消息 Select Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Reate0;如果点下的是$GUI_EVENT_CLOSE(关闭) Exit Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Reate1 GUISetState(@SW_HIDE, $Reate1) Case $msg[0] = $Button3 GUISetState(@SW_SHOW, $Reate1);激活指定窗口并使其以当前大小和位置信息显示 Case $msg[0] = $Button4 RegRun();操作Func RegRun()设定事件 MsgBox(0,\"温馨提醒您:\已经在注册表写入开机自启动,请勿移动本程序到别的位置.\") Case $msg[0] = $GUI_EVENT_MINIMIZE;对话框窗口被最小化 opt(\"TrayIconHide\ Opt(\"TrayMenuMode\ GUISetState(@SW_HIDE,$Reate0) TrayTip(\"服务器定时重启工具\已经最小化窗口了,点击这里可以还原!\ Case $msg[0] = $Button1 RegDelete(\"HKEY_LOCAL_MACHINE\\SOFTWARE\\TIME\") GUICtrlSetData($Label1,\"执行时间: 暂时未设置定时任务\") TrayTip(\"通知\当前任务已经清理完毕,可重新设定.\ Case $msg[0] = $Button2 $SET = GUICtrlRead($Date1) If StringLen($SET) = 7 Then $SET = \"0\"&$SET EndIf RegWrite(\"HKEY_LOCAL_MACHINE\\SOFTWARE\\TIME\\ 时间 RegWrite(\"HKEY_LOCAL_MACHINE\\SOFTWARE\\TIME\\ 事件 TrayTip(\"通知\已经设定完成!请勿关闭程序,否则设定将不起作用.\ Case $msg[0] = $Button10 Shutdown(1);关机 Case $msg[0] = $Button11 Shutdown(2);重启 Case $msg[0] = $Button12 RegDelete(\"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\定时工具\") MsgBox(0,\"温馨提醒您:\已经清除开机自启动项,如需自动启动,请点击'开机运行'按钮.\") Case $msg[0] = $Label5 Run(@ProgramFilesDir 780095.qzone.qq.com\") & \"\\Internet Explorer\\IEXPLORE.EXE EndSelect Switch $Tray Case $TRAY_EVENT_PRIMARYDOWN;按下了鼠标左键 GUISetState(@SW_SHOW);激活指定窗口并使其以当前大小和位置信息显示 EndSwitch $T1 = RegRead(\"HKEY_LOCAL_MACHINE\\SOFTWARE\\TIME\时间\") $R0 = RegRead(\"HKEY_LOCAL_MACHINE\\SOFTWARE\\TIME\事件\") If $T2 <> $T1 Or $R0 <> $R1 Then;\"<>\"比较是否不相等,不相等该表达返回1否则返回0 $R1 = $R0 $T2 = $T1 GUICtrlSetData($Label1,\"执行时间: \"&$T1&\"(\"&$R0&\")\") EndIf $T3 = @HOUR&\":\"&@MIN&\":\"&@SEC;$T3等于当前时间 If $T3 <> $T4 then $T4 = $T3 GUICtrlSetData($Label2,\"当前时间: \"&@HOUR&\":\"&@MIN&\":\"&@SEC&\" \"&@MON&\"月\"&@MDAY&\"日\");修改指定控件的相关数据 EndIf If $T1 = $T3 Then If $R0 = \"关机\" Then;读取注册表值,当$RO值等于组合列表\"关机\"时,则执行$RNOW = 1 $RNOW = 1;关机事件 ElseIf $R0 = \"重启\" Then $RNOW = 2;重启事件 ElseIf $R0 = \"待机\" Then $RNOW = 32;待机事件 ElseIf $R0 = \"休眠\" Then $RNOW = 64;休眠事件 ElseIf $R0 = \"强行关机\" Then $RNOW = 5;强行关机 ElseIf $R0 = \"强行重启\" Then $RNOW = 6;强行重启 EndIf Shutdown($RNOW);shutdown关机事件 EndIf If RegRead(\"HKEY_LOCAL_MACHINE\\SOFTWARE\\TIME\时间\") <> \"\" Then $T5 = StringReplace($T1,\":\替换字符串中的指定子串 $T6 = StringReplace($T3,\":\ If StringMid($T5,1,2)-StringMid($T6,1,2) = 0 Then If StringMid($T5,3,2) - StringMid($T6,3,2) = 0 Then If $T5-$T6 > 0 Then TrayTip(\"温馨提醒您:\还有\"&$T5-$T6&\"秒开始执行关机程序.....\ EndIf Elseif StringMid($T5,3,2)-StringMid($T6,3,2) = 1 Then If StringMid($T5,5,2)+60-StringMid($T6,5,2) > 0 Then TrayTip(\"温馨提醒您:\还有 \"&StringMid($T5,5,2)+60-StringMid($T6,5,2)&\"秒开始执行关机程序.....\ EndIf EndIf EndIf EndIf WEnd Func RegRun();修改注册表,添加程序开机自启动项 dim $Run='HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run' RegWrite($Run,'定时工具','REG_SZ',@AutoItExe);@AutoItExe当前脚本的完整路径. EndFunc;结束Func语句[/au3] 因篇幅问题不能全部显示,请点此查看更多更全内容