Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Перезагрузка компьютера

Ответить
Настройки темы
Перезагрузка компьютера

Ветеран


Сообщения: 900
Благодарности: 86

Профиль | Отправить PM | Цитировать


Изменения
Автор: SharkyEXE
Дата: 09-11-2011
Описание: Обновлено по просьбе Vadikan так, вроде как надо было
Вступление

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) закомментированна (видоизменена) на ;~ Shutdown(2) и следовательно, она эта строка будет не работать до тех пор, пока не станет прежней, т. е. Shutdown(2).

При получении финального кода скрипта, меняем обратно значение строки:

было
Код: Выделить весь код
;~ Shutdown(2)
стало
Код: Выделить весь код
Shutdown(2)
сохраняем еще раз полученный скрипт с тем же именем или с новым именем. Все. Будьте осторожны! С данного момента скрипт становиться абсолютно рабочим и в связи с тем, что строка, отвечающая за перезагруз ПК стала рабочая (см. изменение строки немного выше), при выполнении данного скрипта ПК будет уходить в перезагрузку через указанный таймаут времени.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:49, 25-06-2009

 

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


вот так должно работать:
читать дальше »
Код: Выделить весь код
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)
Для запуска необходимо:
1. Скопировать код в SciTE Script Editor
2. Далее в реадкторе сохранить файл с расширением .au3
3.1 Для запуска через редактор SciTE: нажать клавишу F5, или верхнее меню > Tools > GO
3.2 Для компиляции скрипта (создать .exe файл) через редактор SciTE: нажать клавишу Ctrl+F7 > Compile Script, или верхнее меню > Tools > Compile

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:52, 25-06-2009 | #3


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


Добавь до этих строк строчку:
$J = 30

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:56, 25-06-2009 | #4


Ветеран


Сообщения: 900
Благодарности: 86

Профиль | Отправить PM | Цитировать


{delete}

Последний раз редактировалось SharkyEXE, 25-06-2009 в 20:52.


Отправлено: 19:19, 25-06-2009 | #5


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить 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
Благодарности: 86

Профиль | Отправить PM | Цитировать


{delete}

Последний раз редактировалось SharkyEXE, 25-06-2009 в 20:51.


Отправлено: 19:46, 25-06-2009 | #7


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить 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
Благодарности: 86

Профиль | Отправить PM | Цитировать


{delete}

Последний раз редактировалось SharkyEXE, 26-06-2009 в 00:55.


Отправлено: 20:10, 25-06-2009 | #9


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата:
Благодарность выражаеться пользователю ».......
Coool ! Чувствую себя серебренным призером

SharkyEXE, а медалька будет?

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 20:32, 25-06-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Перезагрузка компьютера

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход