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

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

Ответить
Настройки темы
не могу поймать активное окно

Новый участник


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

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


Здраствуйте.

Есть проблемка.

Никак не могу поймать активное окно. Процес инсталяции такой:
1. Запускаю программу
2. Инсталятор проверяет была ли раньше установлена она.
2.1 если программа была записана раньше то выскакивает окно где преглагает варианты переустановки
2.2 если нет то инсталирует по стандартной процедуре (выбор куда инсталировать и т.д.)

Вот здесь и проблемка. WinActive и WinExists никак не могу зацепить активное окно чтобы определить по какому сценарию дальше производить установку.

Код: Выделить весь код
_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") Then 
   _MSOfficeIntegrate_Repair()
   ElseIF WinExists("Nazvanie okna","Tekst v okne NR2") then
   _MSOfficeIntegrate()
EndIf

Отправлено: 12:42, 16-01-2009

 

Аватара для AzazeLHAck

Пользователь


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

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


Может поздно пишу, но мало ли..
А данные по окнам ты вписываешь "на глаз" или пользуешься AutoIt Window Info..?

-------
Взломаем же систему зла!


Отправлено: 08:31, 30-05-2009 | #2



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

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


Аватара для FlatX007

Ветеран


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

Профиль | Отправить 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


Аватара для Creat0R

Must AutoIt


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

Профиль | Сайт | Отправить 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

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

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

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

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

Отправлено: 13:02, 30-05-2009 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как отключить автоперемещение курсора на активное окно 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




 
Переход