SharkyEXE icon

Untitled

SharkyEXE | PRO | 07/16/22 06:50:52 AM UTC | 0 ⭐ | 15668 👁️ | Never ⏰ | []
AutoIt |

6.49 KB

|

None

|

0 👍

/

0 👎

################################################################################################################
 
# http://autoit-script.ru/autoit3_docs/userappendix/AutoIt3Wrapper.htm
# http://autoit-script.ru/threads/kompiljacija-skripta-maksimalno-szhatie.8948/#post-60159
 
# НЕ использовать X64 версию AutoIt3_x64 или AUT2EXE_x64
#AutoIt3Wrapper_UseX64=n
# Уровень сжатия скомпилированного файла *.exe: минимальный=0, максимальный=4
#AutoIt3Wrapper_Compression=0
# Сжатие скомпилированного файла *.exe
#AutoIt3Wrapper_UseUpx=n
# Имя скомпилированного файла *.exe
# #AutoIt3Wrapper_OutFile=!MS_W_7_Twk.exe
#AutoIt3Wrapper_OutFile=montOFF_Autoit.exe
# Имя файла используемой иконки скомпилированного файла *.exe
# #AutoIt3Wrapper_Icon=icon.ico
# #AutoIt3Wrapper_Icon=transparent.ico
#AutoIt3Wrapper_Icon=offmon.ico
 
################################################################################################################
 
#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <WinAPISys.au3>
#include <WinAPIvkeysConstants.au3>
 
; #include <HotKey.au3>
 
Global $iOff = 1
 
Global $iTimeout = 60
 
$iMarker = 1
 
$message = "Monitor budet potushen avtomaticheski posle" & " " & $iTimeout & " " & "sek.!"
 
; #Include <Timers.au3>
 
; Global $interval_timer, $counter
; HotKeySet("{ESC}", "_terminate")
; HotKeySet("{ESC}", "_terminate2")
; HotKeySet("{ESC}", "_terminate3")
HotKeySet("{ESC}", "_terminate4")
 
;HotKeySet('{Esc}', _Exit)
Opt('TrayMenuMode', 3)
Opt('TrayOnEventMode', 1)
TraySetClick(16)
; TrayItemSetOnEvent(TrayCreateItem('Выход/Закрыть'), _Exit)
TrayItemSetOnEvent(TrayCreateItem('BbIXOD'), _Exit)
TrayItemSetOnEvent(TrayCreateItem('PoraCuTb 3kpaH'), _Monitor_Switch_Second)
TraySetState(1)
 
_Monitor_Switch(True)
Sleep (1000)
 
; Global Const $VK_ESCAPE = 0x1B
; Global Const $VK_F12 = 0x7B
 
Global $T1mer = 0
Global $T2mer = 0
 
While 1
    If $iOff Then
        _Monitor_Switch(True)
 
    ; ElseIf Not $iOff And _WinAPI_GetIdleTime() >= $iTimeout * 1000 Then
    ; ElseIf Not $iOff And (TimerDiff($T2mer) >= $iTimeout * 1000) Then
    ElseIf Not $iOff And ($T2mer) And (TimerDiff($T2mer) >= $iTimeout * 1000) Then
        ; $T2mer = 0
        ; $T2mer = TimerInit()
        $iOff = 1
        SplashOff()
        ProgressOff()
        Sleep (5000)
    ; ElseIf $iOff = 0 Then
    ElseIf $iOff = 0 and $iMarker = 1 Then
       _Msg()
       $iMarker = 0
    EndIf
 
    Sleep(10)
WEnd
 
Func _terminate4()
For $i = $VK_ESCAPE To $VK_ESCAPE
If _WinAPI_GetAsyncKeyState($i) < 0 Then
If ($T1mer) And (TimerDiff($T1mer) < 250) Then
MsgBox("","","double tap detected")
$T1mer = 0
$T2mer = 0
_Monitor_Switch(False)
$iOff = 0
$iMarker = 1
EndIf
EndIf
Next
$T1mer = TimerInit()
$T2mer = TimerInit()
EndFunc   ;==>Message
 
Func _Monitor_Switch($bOff)
    Local $hWnd = WinGetHandle('[CLASS:Progman]')
 
    Local Const $WM_SYSCOMMAND = 274
    Local Const $SC_MONITORPOWER = 61808
    Local Const $iOff = 2, $iOn = -1
 
    _SendMessage($hWnd, $WM_SYSCOMMAND, $SC_MONITORPOWER, ($bOff ? $iOff : $iOn))
EndFunc
 
Func _Monitor_Switch_Second()
        SplashOff()
        ProgressOff()
        Sleep (5000)
        $iOff = 1
        _Monitor_Switch(True)
    ; If $iOff = 0 Then
    ; _Monitor_Switch(True)
    ; MsgBox(0,"","")
    ; $iOff = 1
    ; EndIf
EndFunc
 
Func _Exit()
    _Monitor_Switch(False)
    Exit
EndFunc
 
Func _Msg()
 
$Title = "Пожалуйста, подождите..."             ; Заголовок
$SubTitle = "Происходит уничтожение данных :)"  ; Суб-заголовок
 
$Message  = "Монитор будет потушен автоматически после" & @CRLF ; Сообщение. Записано в таком виде для удобства
$Message &= ""
 
; $Message  = "Все данные на ваших дисках будут уничтожены." & @CRLF ; Сообщение. Записано в таком виде для удобства
; $Message &= "Монитор будет потушен автоматически после" & @CRLF
; $Message &= ""
 
; $Message  = "Система обнаружила использование нелегальной" & @CRLF ; Сообщение. Записано в таком виде для удобства
; $Message &= "копии Windows. Все данные на ваших дисках" & @CRLF
; $Message &= "будут уничтожены." & @CRLF
; $Message &= "Монитор будет потушен автоматически после" & @CRLF
; $Message &= "" & @CRLF
 
$Time = $iTimeout * 1000       ; Время здесь хранится в миллескундах. 1 с = 1000 мс
$Sleep = 0.01 * 1000    ; 10 мс. Меньше 1 мс ставить не рекомундуется. Впрочем, тут и 100 мс хватает.
 
$Timer = TimerInit() ; Инициализация таймера.
 
ProgressOn($Title, $SubTitle, $Message & $Time) ; Параметры: заголовок, суб-заголовок, сообщение. Включаем окно прогресса.
; ProgressOn($Title, $SubTitle, $Message & $Time, -1, -1, 16) ; Параметры: заголовок, суб-заголовок, сообщение. Включаем окно прогресса. ; окно может быть перемещено
While TimerDiff($Timer) < $Time and $iOff = 0 ; Пока прошло времени меньше чем нужно - повторять:
    ProgressSet(TimerDiff($Timer) / $Time * 100, $Message & Round(($Time - TimerDiff($Timer)) / 1000, 1) & " секунд")
    ; ProgressSet ( percent [, "subtext" [, "maintext"]] )
    ; Параметр 1: процент прогресса. Прошедшее время делим на требуемое и умножаем на 100
    ; Параметр 2: сообщение. Стандартное, как в перменной $Message плюс оставшееся время округлённое до десятых
    ; Параметр 3: опциональный. Здесь не используется.
    Sleep($Sleep)
    ; Подожать $Sleep мс
WEnd
; ProgressSet(100, "Шеф! Все пропало. Прощайте.") ; Выводим последнее сообщение.
; Sleep(1000) ; Чтобы было видно последнее сообщение.
; ProgressOff()
 
EndFunc
 
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎