Advertisement
SharkyEXE

Untitled

Jul 16th, 2022
2,353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 6.49 KB | None | 0 0
  1. ################################################################################################################
  2.  
  3. # http://autoit-script.ru/autoit3_docs/userappendix/AutoIt3Wrapper.htm
  4. # http://autoit-script.ru/threads/kompiljacija-skripta-maksimalno-szhatie.8948/#post-60159
  5.  
  6. # НЕ использовать X64 версию AutoIt3_x64 или AUT2EXE_x64
  7. #AutoIt3Wrapper_UseX64=n
  8. # Уровень сжатия скомпилированного файла *.exe: минимальный=0, максимальный=4
  9. #AutoIt3Wrapper_Compression=0
  10. # Сжатие скомпилированного файла *.exe
  11. #AutoIt3Wrapper_UseUpx=n
  12. # Имя скомпилированного файла *.exe
  13. # #AutoIt3Wrapper_OutFile=!MS_W_7_Twk.exe
  14. #AutoIt3Wrapper_OutFile=montOFF_Autoit.exe
  15. # Имя файла используемой иконки скомпилированного файла *.exe
  16. # #AutoIt3Wrapper_Icon=icon.ico
  17. # #AutoIt3Wrapper_Icon=transparent.ico
  18. #AutoIt3Wrapper_Icon=offmon.ico
  19.  
  20. ################################################################################################################
  21.  
  22. #include <GUIConstantsEx.au3>
  23. #include <SendMessage.au3>
  24. #include <WinAPISys.au3>
  25. #include <WinAPIvkeysConstants.au3>
  26.  
  27. ; #include <HotKey.au3>
  28.  
  29. Global $iOff = 1
  30.  
  31. Global $iTimeout = 60
  32.  
  33. $iMarker = 1
  34.  
  35. $message = "Monitor budet potushen avtomaticheski posle" & " " & $iTimeout & " " & "sek.!"
  36.  
  37. ; #Include <Timers.au3>
  38.  
  39. ; Global $interval_timer, $counter
  40. ; HotKeySet("{ESC}", "_terminate")
  41. ; HotKeySet("{ESC}", "_terminate2")
  42. ; HotKeySet("{ESC}", "_terminate3")
  43. HotKeySet("{ESC}", "_terminate4")
  44.  
  45. ;HotKeySet('{Esc}', _Exit)
  46. Opt('TrayMenuMode', 3)
  47. Opt('TrayOnEventMode', 1)
  48. TraySetClick(16)
  49. ; TrayItemSetOnEvent(TrayCreateItem('Выход/Закрыть'), _Exit)
  50. TrayItemSetOnEvent(TrayCreateItem('BbIXOD'), _Exit)
  51. TrayItemSetOnEvent(TrayCreateItem('PoraCuTb 3kpaH'), _Monitor_Switch_Second)
  52. TraySetState(1)
  53.  
  54. _Monitor_Switch(True)
  55. Sleep (1000)
  56.  
  57. ; Global Const $VK_ESCAPE = 0x1B
  58. ; Global Const $VK_F12 = 0x7B
  59.  
  60. Global $T1mer = 0
  61. Global $T2mer = 0
  62.  
  63. While 1
  64.     If $iOff Then
  65.         _Monitor_Switch(True)
  66.  
  67.     ; ElseIf Not $iOff And _WinAPI_GetIdleTime() >= $iTimeout * 1000 Then
  68.     ; ElseIf Not $iOff And (TimerDiff($T2mer) >= $iTimeout * 1000) Then
  69.     ElseIf Not $iOff And ($T2mer) And (TimerDiff($T2mer) >= $iTimeout * 1000) Then
  70.         ; $T2mer = 0
  71.         ; $T2mer = TimerInit()
  72.         $iOff = 1
  73.         SplashOff()
  74.         ProgressOff()
  75.         Sleep (5000)
  76.     ; ElseIf $iOff = 0 Then
  77.     ElseIf $iOff = 0 and $iMarker = 1 Then
  78.        _Msg()
  79.        $iMarker = 0
  80.     EndIf
  81.  
  82.     Sleep(10)
  83. WEnd
  84.  
  85. Func _terminate4()
  86. For $i = $VK_ESCAPE To $VK_ESCAPE
  87. If _WinAPI_GetAsyncKeyState($i) < 0 Then
  88. If ($T1mer) And (TimerDiff($T1mer) < 250) Then
  89. MsgBox("","","double tap detected")
  90. $T1mer = 0
  91. $T2mer = 0
  92. _Monitor_Switch(False)
  93. $iOff = 0
  94. $iMarker = 1
  95. EndIf
  96. EndIf
  97. Next
  98. $T1mer = TimerInit()
  99. $T2mer = TimerInit()
  100. EndFunc   ;==>Message
  101.  
  102. Func _Monitor_Switch($bOff)
  103.     Local $hWnd = WinGetHandle('[CLASS:Progman]')
  104.  
  105.     Local Const $WM_SYSCOMMAND = 274
  106.     Local Const $SC_MONITORPOWER = 61808
  107.     Local Const $iOff = 2, $iOn = -1
  108.  
  109.     _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, ($bOff ? $iOff : $iOn))
  110. EndFunc
  111.  
  112. Func _Monitor_Switch_Second()
  113.         SplashOff()
  114.         ProgressOff()
  115.         Sleep (5000)
  116.         $iOff = 1
  117.         _Monitor_Switch(True)
  118.     ; If $iOff = 0 Then
  119.     ; _Monitor_Switch(True)
  120.     ; MsgBox(0,"","")
  121.     ; $iOff = 1
  122.     ; EndIf
  123. EndFunc
  124.  
  125. Func _Exit()
  126.     _Monitor_Switch(False)
  127.     Exit
  128. EndFunc
  129.  
  130. Func _Msg()
  131.  
  132. $Title = "Пожалуйста, подождите..."             ; Заголовок
  133. $SubTitle = "Происходит уничтожение данных :)"  ; Суб-заголовок
  134.  
  135. $Message  = "Монитор будет потушен автоматически после" & @CRLF ; Сообщение. Записано в таком виде для удобства
  136. $Message &= ""
  137.  
  138. ; $Message  = "Все данные на ваших дисках будут уничтожены." & @CRLF ; Сообщение. Записано в таком виде для удобства
  139. ; $Message &= "Монитор будет потушен автоматически после" & @CRLF
  140. ; $Message &= ""
  141.  
  142. ; $Message  = "Система обнаружила использование нелегальной" & @CRLF ; Сообщение. Записано в таком виде для удобства
  143. ; $Message &= "копии Windows. Все данные на ваших дисках" & @CRLF
  144. ; $Message &= "будут уничтожены." & @CRLF
  145. ; $Message &= "Монитор будет потушен автоматически после" & @CRLF
  146. ; $Message &= "" & @CRLF
  147.  
  148. $Time = $iTimeout * 1000       ; Время здесь хранится в миллескундах. 1 с = 1000 мс
  149. $Sleep = 0.01 * 1000    ; 10 мс. Меньше 1 мс ставить не рекомундуется. Впрочем, тут и 100 мс хватает.
  150.  
  151. $Timer = TimerInit() ; Инициализация таймера.
  152.  
  153. ProgressOn($Title, $SubTitle, $Message & $Time) ; Параметры: заголовок, суб-заголовок, сообщение. Включаем окно прогресса.
  154. ; ProgressOn($Title, $SubTitle, $Message & $Time, -1, -1, 16) ; Параметры: заголовок, суб-заголовок, сообщение. Включаем окно прогресса. ; окно может быть перемещено
  155. While TimerDiff($Timer) < $Time and $iOff = 0 ; Пока прошло времени меньше чем нужно - повторять:
  156.     ProgressSet(TimerDiff($Timer) / $Time * 100, $Message & Round(($Time - TimerDiff($Timer)) / 1000, 1) & " секунд")
  157.     ; ProgressSet ( percent [, "subtext" [, "maintext"]] )
  158.     ; Параметр 1: процент прогресса. Прошедшее время делим на требуемое и умножаем на 100
  159.     ; Параметр 2: сообщение. Стандартное, как в перменной $Message плюс оставшееся время округлённое до десятых
  160.     ; Параметр 3: опциональный. Здесь не используется.
  161.     Sleep($Sleep)
  162.     ; Подожать $Sleep мс
  163. WEnd
  164. ; ProgressSet(100, "Шеф! Все пропало. Прощайте.") ; Выводим последнее сообщение.
  165. ; Sleep(1000) ; Чтобы было видно последнее сообщение.
  166. ; ProgressOff()
  167.  
  168. EndFunc
  169.  
  170.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement