|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Перезагрузка компьютера |
|
|||||
|
|
Перезагрузка компьютера
|
|
Ветеран Сообщения: 900 |
Вступление 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 | |
|