|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » не могу поймать активное окно |
|
не могу поймать активное окно
|
Новый участник Сообщения: 6 |
Профиль | Отправить PM | Цитировать Здраствуйте.
Есть проблемка. Никак не могу поймать активное окно. Процес инсталяции такой: 1. Запускаю программу 2. Инсталятор проверяет была ли раньше установлена она. 2.1 если программа была записана раньше то выскакивает окно где преглагает варианты переустановки 2.2 если нет то инсталирует по стандартной процедуре (выбор куда инсталировать и т.д.) Вот здесь и проблемка. WinActive и WinExists никак не могу зацепить активное окно чтобы определить по какому сценарию дальше производить установку. |
|
Отправлено: 12:42, 16-01-2009 |
Пользователь Сообщения: 94
|
Профиль | Сайт | Отправить PM | Цитировать Может поздно пишу, но мало ли..
А данные по окнам ты вписываешь "на глаз" или пользуешься AutoIt Window Info..? |
------- Отправлено: 08:31, 30-05-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Если я правильно понял ...
AutoItSetOption("WinTextMatchMode", 1) ;~ AutoItSetOption("WinTitleMatchMode", 2) ; сопоставление с произвольным фрагментом AutoItSetOption("WinTitleMatchMode", 3) ; точное сопоставление _FileCopy($MS_Office_integracija_v2,"C:\Claims\MSOffice") Run('C:\Claims\MSOffice\msoffice_v2.bat', 'C:\Claims\MSOffice') If WinExists("Nazvanie okna","Tekst v okne NR1") = 1 Then _MSOfficeIntegrate_Repair() If WinExists("Nazvanie okna","Tekst v okne NR2") = 1 Then _MSOfficeIntegrate() |
Отправлено: 09:08, 30-05-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Вы не забывайте, окно может существовать, но при этом быть в скрытом состоянии, и WinExists вернёт 1.
Иногда нужно проверять его “видимое” существование: $hGUI = GUICreate("_WinExistsEx Example") ;WinSetState($hGUI, "", @SW_SHOW) $iExists = _WinExistsEx($hGUI) $iVisible = @extended MsgBox(64, '_WinExistsEx', StringFormat("[%s]\n\nWin Exists:\t%i\nWin Is Visible:\t%i", WinGetTitle($hGUI), $iExists, $iVisible)) Func _WinExistsEx($sTitle, $sText="") Local $iExists = WinExists($sTitle, $sText) Local $iVisible = Number(BitAND(WinGetState($sTitle, $sText), 2) = 2) Return SetExtended($iVisible, $iExists) EndFunc |
------- Отправлено: 13:02, 30-05-2009 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Как отключить автоперемещение курсора на активное окно | SWiTChm | Microsoft Windows 2000/XP | 2 | 16-10-2008 19:38 | |
не могу поймать трояна в IE & Explorer, перенаправление на free-virusscan.com | _ib_ | Лечение систем от вредоносных программ | 14 | 29-08-2008 01:55 | |
Разное - [решено] Чем отличается пассивное и активное? | AXELman4ever | Хочу все знать | 2 | 06-08-2007 01:21 | |
не могу нормально закрыть окно!! | vl1639 | Microsoft Windows 2000/XP | 2 | 24-11-2006 22:30 | |
Активное оборудование для ВОЛС | lom1on | Сетевые технологии | 1 | 29-06-2004 10:52 |
|