Что нового

_WinWaitActivate("???????", "??????????", 5) Как побороть??

kseniya

Новичок
Сообщения
21
Репутация
1
Скрипт работает до выполнения
Код:
_WinWaitActivate("...","...", 5)
MouseClick("left",146,96,1)
Sleep(5000)

Выдает ошибку
WinWaitActivate("?(кол-во вопросов = кол-ву букв в словах ), ?(кол-во вопросов = кол-ву букв в словах ), 5)
^ ERROR


Причем до этого идет выполнение аналогичной функции:
Код:
Sleep(5000)
_WinWaitActivate("Ошибка ...", "Нет ...!")
MouseClick("left",86,81,1)

где title и text написаны по-русски, и все нормально работает.
Как можно побороть этот затык??
 

SyDr

Сидра
Сообщения
651
Репутация
158
Re: WinWaitActivate("???????", "??????????", 5) Как побороть??

_WinWaitActivate и WinWaitActivate - это разные вещи
 
Автор
K

kseniya

Новичок
Сообщения
21
Репутация
1
Re: WinWaitActivate("???????", "??????????", 5) Как побороть??

SyDr сказал(а):
_WinWaitActivate и WinWaitActivate - это разные вещи
А чем разница?? В справке пищут про WinWaitActivate, а в скриптах сталкивалась пока только с _WinWaitActivate.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
kseniya [?]
В том что первая это пользовательская функция, которая должна присутствовать в скрипте, а второй не существует, есть WinWaitActive.
 
Автор
K

kseniya

Новичок
Сообщения
21
Репутация
1
И все же кто-то может ответить на мой вопрос??? .... ;))
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
kseniya
Запустите сначала этот скрипт
Код:
#include <GUIConstantsEx.au3>

$sTitle = 'Ксения...kseniya'
$hGui = GUICreate($sTitle, 200, 200, 50, 50)
GUICtrlCreateLabel($sTitle, 10, 10, 150, 20)
GUISetState()

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
А потом, не закрывая появившееся окно, этот
Код:
Opt('WinTitleMatchMode', 2)
Opt('WinTextMatchMode', 2)

$hHandle = _WinWaitActivate('...', '...')
If $hHandle Then
	MsgBox(64, '', 'Handle: ' & $hHandle & @CRLF & 'Title: ' & WinGetTitle($hHandle) & @CRLF & _
			'Text: ' & WinGetText($hHandle))
Else
	MsgBox(16, '', 'Нет такого окна')
EndIf

Func _WinWaitActivate($sTitle, $sText = '', $iTimeout = 1)
	Local $hWin
	WinWait($sTitle, $sText, $iTimeout)
	If Not WinActive($sTitle, $sText) Then WinActivate($sTitle, $sText)
	$hWin = WinWaitActive($sTitle, $sText, $iTimeout)
	Return $hWin
EndFunc   ;==>_WinWaitActivate
Или еще:
Код:
;Заменить:
Opt('WinTitleMatchMode', 2)
Opt('WinTextMatchMode', 2)

$hHandle = _WinWaitActivate('...', '...')
;...
;На:
$hHandle = _WinWaitActivate('[REGEXPTITLE:.*?\.\.\..*?]', '...')
;...
 
Автор
K

kseniya

Новичок
Сообщения
21
Репутация
1
madmasles, первые два скрипта помогли вывести текст и название окна, оно совпадает с тем, что я указываю в функции _WinWaitActivate!! :wacko:
Проблема осталась не решенной!! В чем еще может быть дело??
 
Верх