請選擇 進入手機版 | 繼續訪問電腦版

微剋多資訊

 找回密碼
 註冊

Login

Google帳號登入

搜索

簽到天數: 6

該用戶今日未簽到

發表於 2019-11-14 17:04 | 顯示全部樓層 |閱讀模式
  1. #Region ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
  2. #AccAu3Wrapper_Icon=111.ico ;ICO文件自己准备
  3. #AccAu3Wrapper_OutFile=自动关机助手.exe
  4. #AccAu3Wrapper_UseX64=n
  5. #AccAu3Wrapper_Res_Comment=
  6. #AccAu3Wrapper_Res_Description=
  7. #AccAu3Wrapper_Res_Fileversion=1.0.0.1
  8. #AccAu3Wrapper_Res_LegalCopyright=
  9. #AccAu3Wrapper_Res_Language=2052
  10. #AccAu3Wrapper_Res_requestedExecutionLevel=None
  11. #EndRegion ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
  12. #Region ;**** 参数创建于 ACNWrapper_GUI ****
  13. #EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
  14. #include <GUIConstantsEx.au3>
  15. #include <StaticConstants.au3>
  16. #include <WindowsConstants.au3>
  17. #include <ButtonConstants.au3>
  18. #include <ComboConstants.au3>
  19. #include <GUIConstants.au3>
  20. #include <DateTimeConstants.au3>
  21. #Include <Constants.au3>
  22. $Exists = "关机助手";判断是否只运行一个程序
  23. If WinExists($Exists) Then
  24.         MsgBox(32,"温馨提醒您:","程序已经运行!")
  25.         Exit
  26. EndIf
  27.         
  28. ;AutoItWinSetTitle($Exists);修改程序窗口的标题名
  29. FileCreateShortcut(@AutoItExe,@DesktopCommonDir&"定时工具");自动在桌面创建快捷方式!
  30. $Combo1 = GUICtrlCreateCombo("", 120, 95, 80, 25);组合列表
  31. $R1 = ""
  32. $T1 = ""
  33. $T2 = ""
  34. $T3 = ""
  35. $T4 = ""
  36. $S1 = ""
  37. $W1="0"
  38. $W2="0"
  39. $W3="0"
  40. $W4="0"
  41. $W5="0"
  42. $W6="0"
  43. $W7="0"

  44. $Form0= GUICreate("关机助手", 420, 380, 500, 300);前面二个是大小,后面二个是坐标
  45. $Group1 = GUICtrlCreateGroup("关机时间设定(默认为每天)", 20, 110, 380, 95);前面二个是框坐标,后面是大小
  46. GUICtrlSetColor(-1,0x666666)
  47. $Checkbox1 = GUICtrlCreateCheckbox("星期一", 40, 130, 65, 25);前面二个是坐标,后面是自己占用大小
  48. $Checkbox2 = GUICtrlCreateCheckbox("星期二", 110, 130, 65, 25)
  49. $Checkbox3 = GUICtrlCreateCheckbox("星期三", 180, 130, 65, 25)
  50. $Checkbox4 = GUICtrlCreateCheckbox("星期四", 250, 130, 65, 25)
  51. $Checkbox5 = GUICtrlCreateCheckbox("星期五", 320, 130, 65, 25)
  52. $Checkbox6 = GUICtrlCreateCheckbox("星期六", 40, 170, 65, 25)
  53. $Checkbox7 = GUICtrlCreateCheckbox("星期日", 110, 170, 65, 25)

  54. $Checkbox8 = GUICtrlCreateCheckbox("每日", 180, 170, 50, 25)
  55. $Label1 = GUICtrlCreateLabel("时间设定:", 240, 175, 65, 25)
  56. GUICtrlSetState($Checkbox8, $GUI_CHECKED)
  57. $Date1 = GUICtrlCreateDate("", 290, 170, 80, 20, BitOR($DTS_UPDOWN,$DTS_TIMEFORMAT,$WS_TABSTOP));时间选择控件
  58. GUICtrlCreateGroup("", -99, -99, 1, 1)
  59. $Group2 = GUICtrlCreateGroup("关机操作(默认强制重启)", 20, 210, 380, 50)
  60. GUICtrlSetColor(-1,0x666666)
  61. $Radio1 = GUICtrlCreateRadio("重启", 60, 230, 65, 25)
  62. $Radio2 = GUICtrlCreateRadio("关机", 140, 230, 65, 25)
  63. $Radio3 = GUICtrlCreateRadio("强制重启", 210, 230, 65, 25)
  64. $Radio4 = GUICtrlCreateRadio("强制关机", 285, 230, 65, 25)
  65. GUICtrlSetState($Radio3, $GUI_CHECKED)
  66. GUICtrlCreateGroup("", -99, -99, 1, 1)
  67. $Group3 = GUICtrlCreateGroup("", 20, 13, 380, 90)
  68. $Label2 = GUICtrlCreateLabel("关机小程序", 140, 0, 120, 17)
  69. GUICtrlSetColor(-1,0xbb0033);美化字体颜色
  70. $Label3 = GUICtrlCreateLabel("", 290, 0, 108, 18)
  71. GUICtrlSetColor(-1,0x440011)
  72. $Label4 = GUICtrlCreateLabel("每周:", 30, 30, 360, 30)

  73. $Label5 = GUICtrlCreateLabel("每天:", 30, 50, 100, 20)

  74. $Label6 = GUICtrlCreateLabel("执行:", 30, 70, 80, 20)

  75. GUICtrlCreateGroup("", -99, -99, 1, 1)
  76. $Button1 = GUICtrlCreateButton("应用设置", 120, 270, 65, 25)
  77. GUICtrlSetColor(-1,0x110033)
  78. $Button2 = GUICtrlCreateButton("重置设置", 250, 270, 65, 25)
  79. GUICtrlSetColor(-1,0x110033)
  80. GUICtrlCreateGroup("", -99, -99, 1, 1)
  81. $Group4 = GUICtrlCreateGroup("", 20, 295, 380, 75)
  82. $Button3 = GUICtrlCreateButton("随系统启动", 27, 310, 75, 25)
  83. $Button4 = GUICtrlCreateButton("去除自启", 102, 310, 75, 25)
  84. $Button5 = GUICtrlCreateButton("重启主机", 177, 310, 75, 25)
  85. $Button6 = GUICtrlCreateButton("关闭主机", 252, 310, 75, 25)
  86. $Button7 = GUICtrlCreateButton("预留", 327, 310, 40, 25)
  87. $Button8 = GUICtrlCreateButton("隐藏窗口", 27, 340, 75, 25)
  88. $Button9 = GUICtrlCreateButton("系统启动免登录密码", 102, 340, 120, 25)
  89. GUISetState(@SW_SHOW)
  90. #EndRegion ### END Koda GUI section ###
  91. HotKeySet("^!f", "hotkey")
  92. Opt("TrayAutoPause",0)
  93. If RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","时间") <> "" Then;读取注册表指定的值
  94.         Opt("TrayMenuMode",0)

  95.                 Opt("TrayIconHide",0)
  96.         
  97. EndIf

  98. While 1
  99.         $Tray = TrayGetMsg();得到一个系统托盘图标项目产生的事件.
  100.         $msg = GUIGetMsg(1);捕获窗口消
  101.         Select
  102.         Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Form0;如果点下的是$GUI_EVENT_CLOSE(关闭)
  103.                 Exit
  104.                 Case $msg[0] = $Button3
  105.                 RegRun();操作Func RegRun()设定事件
  106.                 MsgBox(0,"温馨提醒您:","已经在注册表写入开机自启动,请勿移动本程序到别的位置.")
  107.                 Case $msg[0] = $Button4
  108.                 RegDelete("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun","定时工具")
  109.                         MsgBox(0,"温馨提醒您:","开机自动启动已从注册表中移除")        
  110.         Case $msg[0] = $Button5
  111.                 Shutdown(1);关机
  112.         Case $msg[0] = $Button6
  113.                 Shutdown(2);重启        
  114.                 Case $msg[0] = $Button7
  115.                 MsgBox(32,"温馨提醒您:","此窗口为其他功能预留。")        
  116.                 Case $msg[0] = $Button8
  117.                 Opt("TrayIconHide", 0) ;隐藏托盘区图标
  118.                                 Opt("TrayMenuMode",1)
  119.                                 GUISetState(@SW_HIDE,$Form0)
  120.                 Case $msg[0] = $Button9

  121.                                 Run("rundll32.exe netplwiz.dll,UsersRunDll")
  122.                                 Run("control userpasswords2")
  123.         Case $msg[0] = $GUI_EVENT_MINIMIZE;对话框窗口被最小化
  124.                 Opt("TrayMenuMode",1)
  125.                 GUISetState(@SW_HIDE,$Form0)
  126.                 TrayTip("关机助手","点击还原!",5,1)
  127.         Case $msg[0] = $Button2
  128.                 RegDelete("HKEY_LOCAL_MACHINESOFTWARETIME")
  129.                 GUICtrlSetData($Label4,"执行时间: 暂时未设置定时任务")
  130.                 TrayTip("通知您","当前任务已经清理完毕,可重新设定.",1,2)
  131.                 Case $msg[0] = $Button1
  132.                                 RegDelete("HKEY_LOCAL_MACHINESOFTWARETIME")
  133.         $SET = GUICtrlRead($Date1)
  134.                         If StringLen($SET) = 7 Then
  135.                         $SET = "0"&$SET
  136.             EndIf
  137.                         If GUICtrlRead($Radio1,0)=1 Then
  138.                                 $S1="重启"
  139.                         ElseIf GUICtrlRead($Radio2,0)=1 Then
  140.                                 $S1="关机"                                
  141.                         ElseIf GUICtrlRead($Radio3,0)=1 Then

  142.                                 $S1="强制重启"
  143.                         ElseIf GUICtrlRead($Radio4,0)=1 Then
  144.                                 $S1="强制关机"        
  145.                         ElseIf GUICtrlRead($Radio1,0)<>1 Or GUICtrlRead($Radio2,0)<>1 Or GUICtrlRead($Radio3,0)<>1 Or GUICtrlRead($Radio3,0)<>1 Then
  146.                                 $S1="强制重启"               
  147.                         EndIf
  148.                 $W1=GUICtrlRead($Checkbox1,1)
  149.                 $W2=GUICtrlRead($Checkbox2,0)
  150.                 $W3=GUICtrlRead($Checkbox3,0)
  151.                 $W4=GUICtrlRead($Checkbox4,0)
  152.                 $W5=GUICtrlRead($Checkbox5,0)
  153.                 $W6=GUICtrlRead($Checkbox6,0)
  154.                 $W7=GUICtrlRead($Checkbox7,0)
  155.                 $W8=GUICtrlRead($Checkbox8,0)        
  156.                ;ToolTip("1" & $W1 & "2" & $W2 & "3"  & $W3 & "4" & $W4 & "5"& $W5&  "6"& $W6 & "7"& $W7& "8" & $W8 & "......",0,0)
  157.                 Sleep(1000)
  158.                 If $W8=1 And ($W1=1 Or $W2=1 Or $W3=1 Or $W4=1 Or $W5=1 Or $W6=1 Or $W7=1 ) then
  159.                     $WEEK8="每日"
  160.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","每日","REG_SZ",$WEEK8)         

  161.                 Else
  162.                         $WEEK8="每日"               
  163.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","每日","REG_SZ",$WEEK8)
  164.                 EndIf
  165.                  If $W1=1 Then
  166.                         $WEEK1="星期一"
  167.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","星期一","REG_SZ",$WEEK1)
  168.                   EndIf
  169.                   If $W2=1 Then
  170.                         $WEEK2="星期二"
  171.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","星期二","REG_SZ",$WEEK2)
  172.                   EndIf
  173.                   If  $W3=1 Then
  174.                         $WEEK3="星期三"
  175.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","星期三","REG_SZ",$WEEK3)
  176.                   EndIf
  177.                  If  $W4=1 Then
  178.                     $WEEK4="星期四"
  179.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","星期四","REG_SZ",$WEEK4)
  180.                   EndIf
  181.                  If $W5=1 Then
  182.                     $WEEK5="星期五"

  183.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","星期五","REG_SZ",$WEEK5)
  184.                   EndIf
  185.                  If $W6=1=1 Then
  186.                     $WEEK6="星期六"
  187.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","星期六","REG_SZ",$WEEK6)
  188.                  EndIf
  189.                  If $W7=1=1 Then
  190.                     $WEEK7="星期日"
  191.                         RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","星期日","REG_SZ",$WEEK7)                        
  192.                  EndIf
  193.                
  194.                 RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","时间","REG_SZ",$SET)
  195.                 RegWrite("HKEY_LOCAL_MACHINESOFTWARETIME","事件","REG_SZ",$S1)
  196.                
  197.                
  198.                 TrayTip("通知","已经设定完成!请勿关闭程序,否则设定将不起作用.",1,2)
  199. EndSelect
  200.                
  201.         Switch $Tray
  202.                 Case $TRAY_EVENT_PRIMARYDOWN;按下了鼠标左键
  203.                         GUISetState(@SW_SHOW);激活指定窗口并使其以当前大小和位置信息显示
  204.         EndSwitch
  205.         $T1 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","时间")
  206.         $R0 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","事件")

  207.                 $WK1 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","星期一")
  208.                 $WK2 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","星期二")
  209.                 $WK3 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","星期三")
  210.                 $WK4 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","星期四")
  211.                 $WK5 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","星期五")
  212.                 $WK6 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","星期六")
  213.                 $WK7 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","星期日")
  214.                 $WK8 = RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","每日")
  215.                
  216.         If $T2 <> $T1 Or $R0 <> $R1 Then;"<>"比较是否不相等,不相等该表达返回1否则返回0
  217.                 $R1 = $R0
  218.                 $T2 = $T1
  219.                                 If $WK8="每日" Then
  220.                                 GUICtrlSetData($Label4,"每周:"&$WK8&"  "&$T1&"("&$R0&")")
  221.                                 Else
  222.                 GUICtrlSetData($Label4,"每周: "&$WK1&" "&$WK2&" "&$WK3&" "&$WK4&" "&$WK5&" "&$WK6&" "&$WK7&"  "&$T1&"("&$R0&")")
  223.                                 EndIf
  224.         EndIf
  225.         $T3 = @HOUR&":"&@MIN&":"&@SEC;$T3等于当前时间

  226.         If $T3 <> $T4 then
  227.                 $T4 = $T3
  228.                 GUICtrlSetData($Label3,""&@MON&"月"&@MDAY&"日 "&@HOUR&":"&@MIN&":"&@SEC&"  ");修改指定控件的相关数据
  229.         EndIf
  230.         If $T1 = $T3 Then
  231.                 If $R0 = "关机" Then;读取注册表值,当$RO值等于组合列表"关机"时,则执行$RNOW = 1
  232.                         $RNOW = 1;关机事件
  233.                 ElseIf $R0 = "重启" Then
  234.                         $RNOW = 2;重启事件
  235.                 ElseIf $R0 = "待机" Then
  236.                         $RNOW = 32;待机事件
  237.                 ElseIf $R0 = "休眠" Then
  238.                         $RNOW = 64;休眠事件
  239.                 ElseIf $R0 = "强制关机" Then
  240.                         $RNOW = 5;强行关机
  241.                 ElseIf $R0 = "强制重启" Then
  242.                         $RNOW = 6;强行重启
  243.                 EndIf
  244.                 Shutdown($RNOW);shutdown关机事件
  245.         EndIf
  246.         If RegRead("HKEY_LOCAL_MACHINESOFTWARETIME","时间") <> "" Then
  247.         $T5 = StringReplace($T1,":","");替换字符串中的指定子串
  248.         $T6 = StringReplace($T3,":","")
  249.         If StringMid($T5,1,2)-StringMid($T6,1,2) = 0 Then
  250.                 If StringMid($T5,3,2) - StringMid($T6,3,2) = 0  Then

  251.                         If $T5-$T6 > 0 Then
  252.                         TrayTip("温馨提醒您:","还有"&$T5-$T6&"秒开始执行关机程序.....",10,1)
  253.                         EndIf
  254.                 Elseif StringMid($T5,3,2)-StringMid($T6,3,2) = 1  Then
  255.                 If StringMid($T5,5,2)+60-StringMid($T6,5,2) > 0 Then
  256.                 TrayTip("温馨提醒您:","还有"&StringMid($T5,5,2)+60-StringMid($T6,5,2)&"秒开始执行关机程序.....",10,1)
  257.                 EndIf
  258.         EndIf
  259. EndIf
  260. EndIf
  261. WEnd

  262. Func RegRun();修改注册表,添加程序开机自启动项
  263. dim $Run='HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun'
  264. RegWrite($Run,'定时工具','REG_SZ',@AutoItExe);@AutoItExe当前脚本的完整路径.
  265. EndFunc;

  266. Func hotkey()
  267. Opt("TrayIconHide", 1) ;隐藏托盘区图标
  268. Opt("TrayMenuMode",0)
  269. GUISetState(@SW_SHOW,$Form0)
  270. EndFunc;
複製代碼
  • 轉貼不附原文連結

    gilywu -10

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

Discuz! X

© 2009-2017 Microduo

快速回覆 返回頂部 返回列表