ShadowMas
30-05-2009, 00:31
Люди вот столкнулся с такой проблемкой не как не получаеться написать коректное условие закрытия при ошибке выполнения скрепта?
Дело в том,что все окна в используемой мной програмке имеют одинаковое название!
Я решил выйти из положения каким образом поставил выскакивающее окно типа
MsgBox(64, "Ошибка установки", "Закройте все открытые окна и попробуйте заново")
Ну чёт получаеться не совсем то, что я планировал дело в том что когда ищёзает указаное мною окно то начинает действовать
часть скрипта "ложь" ну вообщем сейчас всё покажу на примере:
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)
Или подскажите к примеру как сделать ,что бы при ошибке скрипт не на паузу ставал а завершал работу по умолчанию...
Дело в том,что все окна в используемой мной програмке имеют одинаковое название!
Я решил выйти из положения каким образом поставил выскакивающее окно типа
MsgBox(64, "Ошибка установки", "Закройте все открытые окна и попробуйте заново")
Ну чёт получаеться не совсем то, что я планировал дело в том что когда ищёзает указаное мною окно то начинает действовать
часть скрипта "ложь" ну вообщем сейчас всё покажу на примере:
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)
Или подскажите к примеру как сделать ,что бы при ошибке скрипт не на паузу ставал а завершал работу по умолчанию...