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

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

Ответить
Настройки темы
[решено] Блок компа и перезагрука после отработки батника

Аватара для Pozia

Ветеран


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

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


Есть скрипт в учебнике такого вот плана:
Код: Выделить весь код
#NoTrayIcon
BlockInput ( 1 )
$j=60
ProgressOn("Пожалуйста, подождите...", "Происходит настройка Windows", "Компьютером можно пользоваться после" & CHR(10) & "перезагрузки через " & $j & " сек.")
For $i = 1 to 99 step 100/$j
$j=$j-1
sleep(1000)
ProgressSet( $i, "Компьютером можно пользоваться после" & CHR(10) & "перезагрузки через " & $j & " сек.")
Next
ProgressSet(-1 , "Желаю приятного пользования данной сборкой" & CHR(10) & "Windows XP 2010 от Pozia")
Shutdown(2)
sleep(5000)
Раньше он запускался из автозагрузки у меня и все что устанавливалось при первом входе во время работы таймера успевало поставится. Сейчас же моя сборка стала сильно "навернутой" и просто увеличение таймера меня не устраивает так как его величина в зависимости от того на какой комп ставится винда нужна мне разная.
Прошу модифицировать его до такой логики - нужно чтобы данный скрипт запускался и вместо таймера была просто надпись Пожалуйста, подождите... Происходит настройка Windows и при этом запускался батник рядом лежащий. Как только батник отработал, то бишь его процесс в диспетчере задач исчез, нужно чтобы появился в этом же окне вместо надписи таймер секунд в 10 с надписью - Компьютером можно пользоваться после перезагрузки через 10 (здесь таймер отсчелкивает) сек. Желаю приятного пользования данной сборкой Windows XP 2010 от Pozia. Спасибо.

PS команда BlockInput ( 1 ) легко сбивается запуском диспетчера задач. Может есть способ блока компа без возможности снятия блока?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 19:59, 24-01-2010

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
нужно чтобы данный скрипт запускался и вместо таймера была просто надпись Пожалуйста, подождите... Происходит настройка Windows и при этом запускался батник рядом лежащий. Как только батник отработал, то бишь его процесс в диспетчере задач исчез, нужно чтобы появился в этом же окне вместо надписи таймер секунд в 10 с надписью - Компьютером можно пользоваться после перезагрузки через 10 (здесь таймер отсчелкивает) сек. Желаю приятного пользования данной сборкой Windows XP 2010 от Pozia. »
Вот так например (используется UDF _BlockInputEx для блокировки без отключения по «Alt + Ctrl + Del»):

Код: Выделить весь код
#NoTrayIcon
#include <BlockInputEx.au3>

Opt("WinWaitDelay", 1)

$sTaskMgr_Title = "[CLASS:#32770;REGEXPTITLE:(Диспетчер задач|Task Manager)]"

;Disable Task Manager
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System", "DisableTaskMgr", "REG_DWORD", "1")

_BlockInputEx(1)

ProgressOn("Пожалуйста, подождите...", "Происходит настройка Windows")

$iBat_PID = Run(@ScriptDir & "\BatFile.bat")

While ProcessExists($iBat_PID)
    If WinExists($sTaskMgr_Title) Then WinClose($sTaskMgr_Title)

    Sleep(100)
WEnd

$iTimer = 10
$iStep = (100 / $iTimer)
$iPrgrs = 100
$iTimerInit = TimerInit()

While $iTimer >= 0
    Sleep(10)

    If WinExists($sTaskMgr_Title) Then WinClose($sTaskMgr_Title)

    If TimerDiff($iTimerInit) >= 1000 Then
        $iPrgrs -= $iStep

        ProgressSet($iPrgrs, _
            "Компьютером можно пользоваться после" & @CRLF & "перезагрузки, через " & $iTimer & " сек.", _
            "Настройка Windows завершена")

        $iTimer -= 1
        $iTimerInit = TimerInit()
    EndIf
WEnd

ProgressSet(-1, "Желаю приятного пользования данной сборкой" & @CRLF & "Windows XP 2010 от Pozia")

;Enable Task Manager back
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System", "DisableTaskMgr", "REG_DWORD", "0")

Shutdown(2)
Sleep(5000)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 00:54, 25-01-2010 | #2



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

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


Аватара для Pozia

Ветеран


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

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


Цитата Creat0R:
Вот так например (используется UDF _BlockInputEx для »
не совсем понял что делать с этой ссылкой. я создал файл BlockInputEx.au3 содержания:

Код: Выделить весь код
#include <BlockInputEx.au3>

;================== hWindows usage Example ==================

HotKeySet("{ESC}", "_Quit") ;Это вызовет выход из скрипта (на любом окне кроме блокнота (см. далее)).

Run(@WindowsDir & "\Notepad.exe", "", @SW_MAXIMIZE)
WinWait("[REGEXPCLASS:Notepad.*]")
$hNotepad_Wnd = WinGetHandle("[REGEXPCLASS:Notepad.*]")

ControlSetText($hNotepad_Wnd, "", "", _
    "Now try to input some keys in here..." & @CRLF & _
    "Well, that's the idea, you can't, don't you?" & @CRLF & @CRLF & ":)")

;Здесь мы блокируем *все* клавишы на клавиатуре для определённого окна (в этом случае окно Блокнота).
_BlockInputEx(3, "", "", $hNotepad_Wnd)

;Это только для отладки, на сллучай если что то нарушится, скрипт завершит свою работу через 10 секунд.
AdlibEnable("_Quit", 10000)

While 1
    Sleep(100)
WEnd

Func _Quit()
    Exit
EndFunc
и положил по пути c:\Program Files\AutoIt3\Include\ и ничего не работает. а как нужно сделать?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 00:51, 26-01-2010 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
как нужно сделать? »
Скачать архив по ссылке, взять из него файл BlockInputEx.au3 и положить рядом со скриптом (например BlockTest.au3).

P.S
Там чтобы видеть прикреплённые файлы нужно регистрироваться.
Этот архив также есть тут, но не уверен, возможно и тут нужна регистрация.

Цитата Pozia:
при этом запускался батник рядом лежащий »
Я вот немогу понять, зачем делать гибрид, когда всё можно сделать на чистом AutoIt?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 01:08, 26-01-2010 | #4


Аватара для Pozia

Ветеран


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

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


Цитата Creat0R:
Этот архив также есть тут »
качнулся нормально
Цитата Creat0R:
Я вот немогу понять, зачем делать гибрид, когда всё можно сделать на чистом AutoIt? »
конечно можно, но там мой батник очень много делает, и с ним я больше лажу нежели с автоит. Много спрашивать про автоит придется, а так более универсаьнее для меня и проще для редактирования в будущем. Спасибо, вечером протестирую.

Creat0R, при запуски скрипта автоит в окне есть полоса прогресса которая пустая и только после отработки батника она заполняется и начинает уменьшаться. Можно ли от нее до появления таймера избавится? Так будет думаю красивее

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 07:35, 26-01-2010 | #5


Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
Можно ли от нее до появления таймера избавится? »
Можно, нужно перенести строчку с ProgressOn вниз, после цикла While.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 19:34, 26-01-2010 | #6


Аватара для Pozia

Ветеран


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

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


Creat0R, сделал вот так:

Код: Выделить весь код
....
While ProcessExists($iBat_PID)

	If WinExists($sTaskMgr_Title) Then WinClose($sTaskMgr_Title)

    Sleep(100)
WEnd

	ProgressOn("Пожалуйста, подождите...", "Происходит настройка Windows")

$iTimer = 10
$iStep = (100 / $iTimer)
$iPrgrs = 100
$iTimerInit = TimerInit()
.........
Получилось не совсем то. Окно Пожалуйста, подождите...", "Происходит настройка Windows вообще не появляется пока идет работа батника, и только показывает таймер перезагрузки. А хотелось бы чтобы пока работал батник показывало окно Пожалуйста, подождите...", "Происходит настройка Windows

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 19:57, 26-01-2010 | #7


Аватара для Creat0R

Must AutoIt


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

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


Цитата Pozia:
хотелось бы чтобы пока работал батник показывало окно Пожалуйста, подождите...", "Происходит настройка Windows »
Ну это будет уже не прогресс, т.к нативно скрыть полосу в нём нельзя, но можно попробовать так (чтобы полоса прогресса не мелькала на долю секунды, используется убирание окна за пределы видимости и его возвращение на центр после скрытия полосы прогресса):

Код: Выделить весь код
......

ProgressOn("Пожалуйста, подождите...", "Происходит настройка Windows", "", -500, -500)
$hProgress_Win = WinGetHandle("Пожалуйста, подождите...", "Происходит настройка Windows")

ControlHide($hProgress_Win, "", "msctls_progress321")
WinMove($hProgress_Win, "", (@DesktopWidth / 2)-(306/2), (@DesktopHeight / 2)-(125/2))

.....

While ProcessExists($iBat_PID)
    If WinExists($sTaskMgr_Title) Then WinClose($sTaskMgr_Title)

    Sleep(100)
WEnd

ControlShow($hProgress_Win, "", "msctls_progress321")

.....

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 20:22, 26-01-2010 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Системный блок перестал работать после чистки xkspy Непонятные проблемы с Железом 35 04-06-2013 13:59
Разное - как использовать блок питания для бытовых нужд. Вне компа. viter_alex Прочее железо 10 13-06-2011 09:47
[решено] Проблемы после чистки компа shango Материнские платы и память 12 29-01-2010 22:45
CMD/BAT - [решено] Зависание виртуальной машины после запуска батника ZeroCrash Скриптовые языки администрирования Windows 12 16-07-2009 11:07
[решено] Скрипт для продолжения установки после отработки процесса Pozia AutoIt 5 15-05-2009 18:39




 
Переход