Что нового

Не работает должным образом IF.

Фазинур

Новичок
Сообщения
52
Репутация
0
Этот скрипт по сути должен предотвратить поимку одинаковых окон, но на деле происходит так что после того как 2 окно проверяется на одинаковость хенделов, скрипт отказывается брать хендл третьего окна.
Код:
Func twowin ($1hwnd, $2hwnd, $3hwnd)
   while 1 
   WinWaitActive("OLOLOSHGAME")
   $3hWnd = WinGetHandle("OLOLOSHGAME") 
   If $3hwnd=$2hwnd or $1hwnd then
   Else
	  ExitLoop
   EndIf
WEnd
endfunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Re: Обратите внимание на скрипт.

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Обратите внимание на скрипт." - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Фазинур
Плохо сформулировано условие.
 

InnI

AutoIT Гуру
Сообщения
4,982
Репутация
1,460
Действительно, сложно что-то понять...
Может так?
Код:
If $3hwnd=$2hwnd or $3hwnd=$1hwnd then
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Фазинур,
Попробуйте примерно так.
Код:
Func twowin($1hwnd, $2hwnd, $3hwnd)
	While 1
		$3hwnd = WinWaitActive("OLOLOSHGAME")
		Switch $3hwnd
			Case $1hwnd, $2hwnd
				ContinueLoop
		EndSwitch
		ExitLoop
	WEnd
EndFunc   ;==>twowin
 
Автор
Ф

Фазинур

Новичок
Сообщения
52
Репутация
0
Способ от INNI робит, теперь скрипт заработал, всем подниму репу за помощь.
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
На закуску:
Код:
Func twowin($1hwnd, $2hwnd, $3hwnd)
    While WinGetHandle("OLOLOSHGAME") = $2hwnd or WinGetHandle("OLOLOSHGAME") = $1hwnd
		WinWaitActive("OLOLOSHGAME")
;~ 		...
    WEnd
EndFunc   ;==>twowin


ЗЫ: Зачем в ф-цию передавать $3hwnd, если в ней же она присваивается ?
 
Верх