|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Перезагрузка компьютера |
|
|
Перезагрузка компьютера
|
Ветеран Сообщения: 900 |
Профиль | Отправить PM | Цитировать
Вступление 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) 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) 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) ; перезагружаем 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) ; перезагружаем 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) ; перезагружаем 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) 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) 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) 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) ; Чтобы было видно последнее сообщение. 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 Кусок кода, позволяющий создать самоудаляющийся скрипт для перезагрузки ПК после определенного таймаута на основе AutoIt после завершении отработки скрипта http://forum.oszone.net/post-1152147-21.html Благодарность выражаеться пользователю proxy Примечание!!! 1) Внимание. Все вышеуказанные коды скриптов для перезагрузки ПК-абсолютно рабочие. Осталось только скопировать содержимое одного из вышеуказанных кодов, вставить, сохранить, запустить-все работает. 2) Чтобы тестировать их выполнение, делать версию под себя, изменяя параметры таймаута до перезагрузки, текст сообщения и прочее, рекомендую, как и делал пользователь FlatX007, в скриптах изменять одну строчку. Например: было стало Так у Вас при тестировании/отладки/"игры" с параметрами скрипта, его пробовании в работе, будет работать все, за исключением самой главной функции скрипта-отправки ПК в перезагруз, т. к. строка, отвечающая за это, т. е. Shutdown(2) закомментированна (видоизменена) на ;~ Shutdown(2) и следовательно, она эта строка будет не работать до тех пор, пока не станет прежней, т. е. Shutdown(2). При получении финального кода скрипта, меняем обратно значение строки: было стало сохраняем еще раз полученный скрипт с тем же именем или с новым именем. Все. Будьте осторожны! С данного момента скрипт становиться абсолютно рабочим и в связи с тем, что строка, отвечающая за перезагруз ПК стала рабочая (см. изменение строки немного выше), при выполнении данного скрипта ПК будет уходить в перезагрузку через указанный таймаут времени. |
|
Отправлено: 17:49, 25-06-2009 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать $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 , "Шеф! Все пропало. Прощайте.") sleep(5000) ;~ Shutdown(2) ; перезагружаем |
Отправлено: 18:50, 25-06-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать вот так должно работать:
|
------- Отправлено: 18:52, 25-06-2009 | #3 |
Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать Добавь до этих строк строчку:
$J = 30 |
------- Отправлено: 18:56, 25-06-2009 | #4 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать {delete}
|
|
Последний раз редактировалось SharkyEXE, 25-06-2009 в 20:52. Отправлено: 19:19, 25-06-2009 | #5 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать $i = 0 $iI = 10 ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных :)", "Система обнаружила использование нелегальной" & @CRLF & "копии Windows. Через " & $iI & " сек. все данные" & @CRLF & "на ваших дисках будут уничтожены.") For $i = 1 to 100 step 10 ; sleep(1000) ; ProgressSet($i, "Система обнаружила использование нелегальной" & @CRLF & "копии Windows. Через " & $iI & " сек. все данные" & @CRLF & "на ваших дисках будут уничтожены.") $iI = $iI - 1 ; Next ; ProgressSet(100 , "Шеф! Все пропало. Прощайте.") ; Тут надо вписать процентовку прогресс бара ....те 100% sleep(5000) ;~ Shutdown(2) ; перезагружаем |
Отправлено: 19:23, 25-06-2009 | #6 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать {delete}
|
Последний раз редактировалось SharkyEXE, 25-06-2009 в 20:51. Отправлено: 19:46, 25-06-2009 | #7 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Так прогресс бар небудет "прыгать"
$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) ; перезагружаем |
Отправлено: 20:00, 25-06-2009 | #8 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать {delete}
|
Последний раз редактировалось SharkyEXE, 26-06-2009 в 00:55. Отправлено: 20:10, 25-06-2009 | #9 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата:
SharkyEXE, а медалька будет? |
|
------- Отправлено: 20:32, 25-06-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Opera подгружает страницу после истечения определенного времени | Prosto_lamo | Хочу все знать | 6 | 15-06-2012 16:22 | |
коды для samsung m310 | SS3 | Мобильные ОС, смартфоны и планшеты | 1 | 25-06-2009 22:43 | |
Рабочие драйвера для nvidia для Vista x64 | Algierd | Видеокарты | 3 | 11-05-2009 06:56 | |
система загружается только после перезагрузки (после первого включения) | kovcheg | Непонятные проблемы с Железом | 6 | 26-10-2008 20:20 | |
Вылетают пользователи после определенного интервала времени | GuestMax | Microsoft Windows NT/2000/2003 | 23 | 23-10-2006 06:13 |
|