Что нового

Закрытие всплывающего окна

tyukas

Новичок
Сообщения
5
Репутация
0
Всем доброго времени суток.
Прочитала всю тему http://autoit-script.ru/index.php/topic,7339.0.html, несколько раз. Но никак не удается решить проблему. Всплывающее окно, где необходимо нажать кнопку "Ok", скрипт останавливается, после ручного нажатия на OK/Cancel - возобновляется... Пытаюсь использовать решение, которое помогло выше - ничего не меняется :( Вставляю код, что я делаю не так?
Мой код изначально:
Код:
#include <IE.au3>
WinActivate("[CLASS:IEFrame]")
$oIE = _IEAttach("Система 4i", "Title")
$oEdit = _IEGetObjByName($oIE, "ctl00$ctl00$ctl00$MainContent$LeftContent$UserDataContent$saveButton") 
_IEAction($oEdit, "click") ; после нажатия кнопки сохранить появляется модальное окно
ControlClick('[Title:Сообщение с веб-страницы]', '', '[CLASS:Button; INSTANCE:1]') ; вот тут хотелось бы нажать кнопку Ок :)

Когда запускаю скрипт при открытом модальном окне - он срабатывает...
Сейчас мой код выглядит вот так:
Код:
#include <IE.au3>
#include <File.au3>
WinActivate("[CLASS:IEFrame]")
$oIE = _IEAttach("Система 4i", "Title")
$oEdit = _IEGetObjByName($oIE, "ctl00$ctl00$ctl00$MainContent$LeftContent$UserDataContent$saveButton") 
$sTempFile = _TempFile(@TempDir)
$iPid = _Click_Prompt_IE('Test')
If Not $iPid Then
    MsgBox(16, 'Error', '_Click_Prompt_IE')
EndIf
_IEAction($oEdit, "click")
If ProcessExists($iPid) Then
    ProcessClose($iPid)
    Sleep(500)
EndIf
FileDelete($sTempFile)
ControlClick('[Title:Сообщение с веб-страницы]', '', '[CLASS:Button; INSTANCE:1]')

Func _Click_Prompt_IE($s_Text)
    Local $s_TempFile, $s_Script, $h_File, $i_Pid, $i_Start, $i_TimeOut = 4000 ; 4 sec

    $s_Script = "#NoTrayIcon" & @CRLF & _
            "$hWin = WinWait('[Title:Explorer User Prompt; Class:#32770]', '', 3)" & @CRLF & _
            "If Not $hWin Then Exit" & @CRLF & _
			"ControlClick($hWin, '', '[CLASS:Button; INSTANCE:1]')" & @CRLF & _;у Вас может быть другой
            "Sleep(500)" & @CRLF & _
            "If WinExists($hWin) Then" & @CRLF & _
            "ToolTip('Ошибка 3', 0, 0)" & @CRLF & _
            "Sleep(5000)" & @CRLF & _
            "EndIf" & @CRLF & _
            "Exit"

    $h_File = FileOpen($sTempFile, 2)
    FileWrite($h_File, $s_Script)
    FileClose($h_File)
    If @Compiled Then
        $i_Pid = Run(@ScriptFullPath & ' /AutoIt3ExecuteScript "' & $sTempFile & '"')
    Else
        $i_Pid = Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $sTempFile & '"')
    EndIf
    Return $i_Pid
EndFunc   ;==>_Click_Prompt_IE


Целый день голову ломаю, буду очень благодарна за помощь.. :stars:
Ссылку дать не могу, система во внутренней сети :(
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Это происходит потому, что сразу же за _IEAction следует ControlClick, который выполняется раньше, чем успевает появится модальное окно.
 
Верх