|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Условие выхода при ошибке в работе скрипта |
|
Условие выхода при ошибке в работе скрипта
|
Пользователь Сообщения: 98 |
Люди вот столкнулся с такой проблемкой не как не получаеться написать коректное условие закрытия при ошибке выполнения скрепта?
Дело в том,что все окна в используемой мной програмке имеют одинаковое название! Я решил выйти из положения каким образом поставил выскакивающее окно типа Ну чёт получаеться не совсем то, что я планировал дело в том что когда ищёзает указаное мною окно то начинает действовать часть скрипта "ложь" ну вообщем сейчас всё покажу на примере: BlockInput(1) DirCreate("D:\Test") FileDelete("D:\Test\*.tib") RegWrite('HKCU\SOFTWARE\Acronis\TrueImageHome\DontShow', 'IncrementalTip', 'REG_SZ', '1') Run(@ProgramFilesDir & "\Acronis\TrueImageHome\TrueImage.exe") WinWaitActive("Acronis*True*Image*Home") Sleep(8000) Send("{LALT}") Send("{ENTER}") Send("{ENTER}") WinWaitActive("Мастер резервного копирования") Send("{ENTER}") WinWaitActive("Мастер резервного копирования") Send("{ENTER}") WinWaitActive("Мастер резервного копирования") Send("{ENTER}") Sleep(2000) Send("{BS 25}") Send("D:\Test\Образ.tib") Send("{ENTER}") WinExists("Мастер резервного копирования") Sleep(1000) Send("{ENTER}") WinExists("Мастер резервного копирования") Sleep(1000) Send("{ENTER}") WinExists("Мастер резервного копирования") Sleep(1000) ControlClick("Мастер резервного копирования", "", "FXWindow6") WinWaitActive("Мастер резервного копирования") ControlClick("Мастер резервного копирования", "", "FXWindow6") Send("{ENTER}") MsgBox(64, "Информация", "Дождитесь пока программа завершит работу", 5) If WinExists("Информация")==1 Then WinClose("Acronis*True*Image*Home") RegDelete("HKCU\SOFTWARE\Acronis\TrueImageHome\DontShow") Exit Else BlockInput(0) MsgBox(64, "Ошибка установки", "Закройте все открытые окна и попробуйте заново") Exit EndIf Люди может подскажите, может кто уневерсальный код придумал типа как на повторный запуск скрипта: $g_szVersion = "My Script 1.1" If WinExists($g_szVersion) Then Exit ; Он уже запущен AutoItWinSetTitle($g_szVersion) Или подскажите к примеру как сделать ,что бы при ошибке скрипт не на паузу ставал а завершал работу по умолчанию... |
|
Отправлено: 00:31, 30-05-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Я несколько раз перечитал пост, но так и не понял проблемы. Какое условие должен проверять скрипт, и что он должен делать при выходе?
Или просто нужно не запускать скрипт повторно? Для этого есть функция _SingleTon(). Цитата ShadowMas:
![]() |
|
------- Отправлено: 00:55, 30-05-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Я так понял, что ты с помощью скрипта планируеш запуск Acronis и создавать резервную копию... Почему бы тебе не использовать встроенный в Acronis планировщик (Действие -->Создать новое задание и т.д.)? Если сделать так, то можно запланировать любое, задание, а потом выбрать режим запуска, который тебе подходит, или по времени, или по событию, единократно, или каждый день и т. д., или же выбрать режим запуска Вручную, а потом, когда это задание появится в списке заданий, то можеш с помощью скрипта, автоматом запустить Acronis, выбрать пункт Управление заданиями, и запустить на выполнение твое задание. Думаю так будет проще, и ошибок не будет...
|
------- Отправлено: 01:06, 30-05-2009 | #3 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Да нет вопрос в другом нужнео сделать условие выхода если вдруг скрипт по какимто причинам не сработал или появилось неожиданое окно!
|
Отправлено: 21:29, 30-05-2009 | #4 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата ShadowMas:
Есть такой модуль называется AutoItErrorHandler, может помочь отслеживать крах скрипта. |
||
------- Отправлено: 22:17, 30-05-2009 | #5 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Ясно ну спасибо за участие думаю,чуть поменять условие и всё должно получиться!
Всем ещё раз огромное спасибо!!! |
Отправлено: 22:26, 30-05-2009 | #6 |
Пользователь Сообщения: 98
|
Профиль | Отправить PM | Цитировать Всё люди я розобрался с условием
![]() Вот рабочий код на автоматическое создание архива для 10-го Акрониса + проверка на случайную ошибку или сбой при установке, думаю так будет работать нормально ![]() BlockInput(1) DirCreate("D:\Test") FileDelete("D:\Test\*.tib") RegWrite('HKCU\SOFTWARE\Acronis\TrueImageHome\DontShow', 'IncrementalTip', 'REG_SZ', '1') Run(@ProgramFilesDir & "\Acronis\TrueImageHome\TrueImage.exe") WinWaitActive("Acronis*True*Image*Home") Sleep(8000) Send("{LALT}") Send("{ENTER}") Send("{ENTER}") WinWaitActive("Мастер резервного копирования") Send("{ENTER}") WinWaitActive("Мастер резервного копирования") Send("{ENTER}") WinWaitActive("Мастер резервного копирования") Send("{ENTER}") Sleep(2000) Send("{BS 25}") Send("D:\Test\Образ.tib") Send("{ENTER}") WinExists("Мастер резервного копирования") Sleep(1000) Send("{ENTER}") WinExists("Мастер резервного копирования") Sleep(1000) Send("{ENTER}") WinExists("Мастер резервного копирования") Sleep(1000) ControlClick("Мастер резервного копирования", "", "FXWindow6") WinWaitActive("Мастер резервного копирования") ControlClick("Мастер резервного копирования", "", "FXWindow6") Send("{ENTER}") If WinActive("Acronis*True*Image*Home") Then WinWait("Информация") Send("{ENTER}") WinClose("Acronis*True*Image*Home") RegDelete("HKCU\SOFTWARE\Acronis\TrueImageHome\DontShow") BlockInput(0) MsgBox(64, "Сообщение", "Запись успешно окончина!") Else BlockInput(0) MsgBox(64, "ОШИБКА ВЫПОЛНЕНИЯ", "Закройте все активные окна и попробуйте заново") WinClose("Мастер резервного копирования") WinClose("Acronis*True*Image*Home") EndIf |
Отправлено: 01:30, 31-05-2009 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
При ошибке выдаются неправильные номера строки из IE.au3 | evg64 | AutoIt | 2 | 25-09-2009 00:24 | |
CMD/BAT - [решено] Не всегда отрабатывается условие при использовании rasdial | hosco | Скриптовые языки администрирования Windows | 8 | 04-05-2009 10:16 | |
не могу разобраться в работе скрипта | Sidelong | Microsoft Windows NT/2000/2003 | 6 | 28-08-2007 12:47 | |
Запуск скрипта при подключении к сети | Neu-iskatell | Сетевые технологии | 7 | 31-10-2005 16:09 | |
Ошибка при работе скрипта | Rudy | Вебмастеру | 18 | 13-10-2004 06:52 |
|