Перезагрузка компьютера
Вступление
1) Свел все рабочие коды-примеры скриптов для перезагрузки ПК после определенного таймаута на основе AutoIt из данной темы на форуме, разбросанным по страницам, в одно данное сообщение.
2) Обязательно к ознакомлению в конце данного сообщения Примечание!!!.
Блок готовых рабочих кодов-примеров скриптов для перезагрузки ПК после определенного таймаута на основе AutoIt
1) Таймаут перед тем, как компьютер перезагрузиться-30 секунд (полностью рабочая версия кода-примера скрипта для перезагрузки ПК после определенного таймаута на основе AutoIt, получившаяся благодаря коррекции кода-примера скрипта, приведенного здесь Перезагрузка компьютера из командной строки)
Код:
$J = 30 ;
ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных :)", "Система обнаружила использование нелегальной" & CHR(10) & "копии Windows. Через " & $j & " сек. все данные" & CHR(10) & "на ваших дисках будут уничтожены.")
For $i = 1 to 99 step 3.3
$j=$j-1
sleep(1000)
ProgressSet( $i, "Система обнаружила использование нелегальной" & CHR(10) & "копии Windows. Через " & $j & " сек. все данные" & CHR(10) & "на ваших дисках будут уничтожены.")
Next
ProgressSet(-1 , "Шеф! Все пропало. Прощайте.")
Shutdown(2)
sleep(5000)
Благодарность выражаеться пользователю Sylver Dragon
2) Таймаут перед тем, как компьютер перезагрузиться-24 секунды
Код:
Local $i, $j=24
ProgressOn('Пожалуйста, подождите...', 'Происходит уничтожение данных :)', 'Система обнаружила использование нелегальной' & @CRLF & 'копии Windows. Через ' & $j & ' сек. все данные' & @CRLF & 'на ваших дисках будут уничтожены.')
For $i = 1 to 99 step 4
Sleep(1000)
ProgressSet($i, 'Система обнаружила использование нелегальной' & @CRLF & 'копии Windows. Через ' & $j & ' сек. все данные' & @CRLF & 'на ваших дисках будут уничтожены.')
$j -= 1
Next
ProgressSet(100, 'Шеф! Все пропало. Прощайте.')
Shutdown(2)
Sleep(5000)
Благодарность выражаеться пользователю proxy
3) Таймаут перед тем, как компьютер перезагрузиться-100 секунд
Код:
$i = 0
$iI = 100
;Отображаем окно демонстрации развития процесса
ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных :)", "Система обнаружила использование нелегальной" & @CRLF & "копии Windows. Через " & $iI & " сек. все данные" & @CRLF & "на ваших дисках будут уничтожены.")
For $i = 1 to 100 step 1 ; Задаём цикл от 1 до 100 при повторении цикла к $i + 1 о чём свидетельствует step 1
sleep(1000) ; Пауза 1 сек
; Установить позицию и текст для созданного ранее окна отображения развития процесса.
ProgressSet($i, "Система обнаружила использование нелегальной" & @CRLF & "копии Windows. Через " & $iI & " сек. все данные" & @CRLF & "на ваших дисках будут уничтожены.")
$iI = $iI - 1 ; При повторении цикла отнимаем от $iI один т.е. 99 98 97 96 ...
Next ; Конец цикла т.е. $i = 100
ProgressSet(100 , "Шеф! Все пропало. Прощайте.") ; Тут надо вписать процентовку прогресс бара ....те 100%
sleep(5000)
Shutdown(2) ; перезагружаем
Благодарность выражаеться пользователю FlatX007
4) Таймаут перед тем, как компьютер перезагрузиться-10 секунд
Код:
$i = 0
$iI = 10
;Отображаем окно демонстрации развития процесса
ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных :)", "Система обнаружила использование нелегальной" & @CRLF & "копии Windows. Через " & $iI & " сек. все данные" & @CRLF & "на ваших дисках будут уничтожены.")
For $i = 1 to 100 step 9.5 ; Задаём цикл от 1 до 100 при повторении цикла к $i + 1 о чём свидетельствует step 9.5
sleep(1000) ; Пауза 1 сек
; Установить позицию и текст для созданного ранее окна отображения развития процесса.
ProgressSet($i, "Система обнаружила использование нелегальной" & @CRLF & "копии Windows. Через " & $iI & " сек. все данные" & @CRLF & "на ваших дисках будут уничтожены.")
$iI = $iI - 1 ; При повторении цикла отнимаем от $iI один т.е. 99 98 97 96 ...
Next ; Конец цикла т.е. $i = 100
ProgressSet(100 , "Шеф! Все пропало. Прощайте.") ; Тут надо вписать процентовку прогресс бара ....те 100%
sleep(5000)
Shutdown(2) ; перезагружаем
Благодарность выражаеться пользователю FlatX007
5) Таймаут перед тем, как компьютер перезагрузиться-10 секунд. Доп. инфо см. по следующей ссылке: http://forum.oszone.net/post-1151716-8.html
Код:
$i = 0
$iI = 100
ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных :)", "Система обнаружила использование нелегальной" & @CRLF & "копии Windows. Через " & Round($iI / 10) & " сек. все данные" & @CRLF & "на ваших дисках будут уничтожены.")
For $i = 1 to 100 Step 1
sleep(100) ; делим $iI на 10 и округляем до целого числа = 10 9 8 7 6 ...
ProgressSet($i, "Система обнаружила использование нелегальной" & @CRLF & "копии Windows. Через " & Round($iI / 10) & " сек. все данные" & @CRLF & "на ваших дисках будут уничтожены.")
$iI = $iI - 1 ;
Next ;
ProgressSet(100 , "Шеф! Все пропало. Прощайте.")
sleep(1000)
Shutdown(2) ; перезагружаем
Благодарность выражаеться пользователю FlatX007
6) Таймаут перед тем, как компьютер перезагрузиться-30 секунд
Код:
$J = 30
ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных :)", "Система обнаружила использование нелегальной" & CHR(10) & "копии Windows. Через " & $j & " сек. все данные" & CHR(10) & "на ваших дисках будут уничтожены.")
For $i = 0 to 100 step 100/$J
$j=$j-1
sleep(1000)
ProgressSet( $i, "Система обнаружила использование нелегальной" & CHR(10) & "копии Windows. Через " & $j & " сек. все данные" & CHR(10) & "на ваших дисках будут уничтожены.")
Next
ProgressSet(-1 , "Шеф! Все пропало. Прощайте.")
Shutdown(2)
Благодарность выражаеться пользователю Sylver Dragon
7) Таймаут перед тем, как компьютер перезагрузиться-30 секунд
Код:
$s = 30
ProgressOn('Пожалуйста, подождите...', 'Происходит уничтожение данных :)', 'Система обнаружила использование нелегальной' & @CRLF & 'копии Windows. Через ' & $s & ' сек. все данные' & @CRLF & 'на ваших дисках будут уничтожены.')
For $i=1 To 100 Step 100/$s
Sleep(1000)
ProgressSet($i, 'Система обнаружила использование нелегальной' & @CRLF & 'копии Windows. Через ' & $s & ' сек. все данные' & @CRLF & 'на ваших дисках будут уничтожены.')
Next
ProgressSet(100, 'Шеф! Все пропало. Прощайте.')
Sleep(1000)
Shutdown(2)
Благодарность выражаеться пользователям Sylver Dragon (оригинал кода-см. пример 7)) и proxy (коррекция кода)
8) Таймаут перед тем, как компьютер перезагрузиться-5 секунд. Улучшена структура скрипта, секунды теперь отображаються как десятичное число, т. е например 0.4 секунды, а не как во всех предыдущих примерах скриптов-1 секунда, 2 секунды/ В данном примере прогресс бар идет быстрее за счет меньшей задержки между счетчиком цикла, т. е. за счет значения параметра $Sleep = 100. В примерах скриптов выше это значение задержки, пусть и реализовано может и по другому, было равным 1000 (1 секунда)
Код:
$Title = "Пожалуйста, подождите..."
$SubTitle = "Происходит уничтожение данных :)"
$Message = "Система обнаружила использование нелегальной" & @CRLF
$Message &= "копии Windows. Все данные на ваших дисках" & @CRLF
$Message &= "будут уничтожены. Осталось времени: "
$Time = 5000
$Sleep = 100
ProgressOn($Title, $SubTitle, $Message & $Time)
For $I = 0 to $Time Step $Sleep
ProgressSet($I / $Time * 100, $Message & ($Time - $I) / 1000 & " секунд")
Sleep($Sleep)
Next
ProgressSet(100, "Шеф! Все пропало. Прощайте.")
Shutdown(2)
Sleep(1000)
Благодарность выражаеться пользователю Sylver Dragon
9) Таймаут перед тем, как компьютер перезагрузиться-30 секунд. Доп. инфо см. по следующей ссылке: http://forum.oszone.net/post-1152952-23.html
Код:
$Title = "Пожалуйста, подождите..." ; Заголовок
$SubTitle = "Происходит уничтожение данных :)" ; Суб-заголовок
$Message = "Система обнаружила использование нелегальной" & @CRLF ; Сообщение. Записано в таком виде для удобства
$Message &= "копии Windows. Все данные на ваших дисках" & @CRLF
$Message &= "будут уничтожены. Осталось времени: "
$Time = 30 * 1000 ; Время здесь хранится в миллескундах. 1 с = 1000 мс
$Sleep = 0.01 * 1000 ; 10 мс. Меньше 1 мс ставить не рекомундуется. Впрочем, тут и 100 мс хватает.
$Timer = TimerInit() ; Инициализация таймера.
ProgressOn($Title, $SubTitle, $Message & $Time) ; Параметры: заголовок, суб-заголовок, сообщение. Включаем окно прогресса.
While TimerDiff($Timer) < $Time ; Пока прошло времени меньше чем нужно - повторять:
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, "Шеф! Все пропало. Прощайте.") ; Выводим последнее сообщение.
Shutdown(2) ; Перезагружаем компьютер
Sleep(1000) ; Чтобы было видно последнее сообщение.
Благодарность выражаеться пользователю Sylver Dragon
10) Таймаут перед тем, как компьютер перезагрузиться-10 секунд. Доп. инфо см. по следующей ссылке: http://forum.oszone.net/post-1153010-24.html
Код:
#NoTrayIcon
;~ #RequireAdmin
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("", 400, 298, -1, -1, $WS_BORDER, BitOR($WS_EX_TOOLWINDOW, $GUI_WS_EX_PARENTDRAG, $WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
$Label1 = GUICtrlCreateLabel("0", 16, 40, 262, 205, $SS_CENTER)
GUICtrlSetFont(-1, 130, 400, 0, "Comic Sans MS")
GUICtrlSetColor(-1, 0xFF0000)
$Label2 = GUICtrlCreateLabel("Перезагрузка компьютера через ... ", 24, 8, 358, 27)
GUICtrlSetFont(-1, 14, 800, 0, "Tahoma")
$Label3 = GUICtrlCreateLabel("Сек.", 280, 185, 109, 62)
GUICtrlSetFont(-1, 36, 800, 0, "Comic Sans MS")
WinSetOnTop($Form1, "", 1)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $nMsg = 1
For $Start = 10 To 0 Step -1 ; -- Вписывааем ВМЕСТО 10 любую цифру эта цифра и будет начало отсчёта --
Select
Case $Start >= 7
GUICtrlSetColor($Label1, 0x00FF00)
GUICtrlSetData($Label1, $Start)
Case $Start > 3
GUICtrlSetColor($Label1, 0xFF8000)
GUICtrlSetData($Label1, $Start)
Case $Start >= 0
GUICtrlSetColor($Label1, 0xFF0000)
GUICtrlSetData($Label1, $Start)
EndSelect
Sleep(1000)
Next
GUISetState(@SW_HIDE)
If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
$iMsgBoxAnswer = MsgBox(36,"","Перезагрузить компьютер ? ")
Select
Case $iMsgBoxAnswer = 6 ;Yes
;~ Shutdown(2) ; Перезагружаем
Exit
Case $iMsgBoxAnswer = 7 ;No
Exit
EndSelect
EndSwitch
WEnd
Благодарность выражаеться пользователю FlatX007
Кусок кода, позволяющий создать самоудаляющийся скрипт для перезагрузки ПК после определенного таймаута на основе AutoIt после завершении отработки скрипта
http://forum.oszone.net/post-1152147-21.html
Благодарность выражаеться пользователю proxy
Примечание!!!
1) Внимание. Все вышеуказанные коды скриптов для перезагрузки ПК-абсолютно рабочие. Осталось только скопировать содержимое одного из вышеуказанных кодов, вставить, сохранить, запустить-все работает.
2) Чтобы тестировать их выполнение, делать версию под себя, изменяя параметры таймаута до перезагрузки, текст сообщения и прочее, рекомендую, как и делал пользователь FlatX007, в скриптах изменять одну строчку.
Например:
было
стало
Так у Вас при тестировании/отладки/"игры" с параметрами скрипта, его пробовании в работе, будет работать все, за исключением самой главной функции скрипта-отправки ПК в перезагруз, т. к. строка, отвечающая за это, т. е. Shutdown(2) закомментированна (видоизменена) на ;~ Shutdown(2) и следовательно, она эта строка будет не работать до тех пор, пока не станет прежней, т. е. Shutdown(2).
При получении финального кода скрипта, меняем обратно значение строки:
было
стало
сохраняем еще раз полученный скрипт с тем же именем или с новым именем. Все. Будьте осторожны! С данного момента скрипт становиться абсолютно рабочим и в связи с тем, что строка, отвечающая за перезагруз ПК стала рабочая (см. изменение строки немного выше), при выполнении данного скрипта ПК будет уходить в перезагрузку через указанный таймаут времени.
|