Что нового

[Элементы GUI] Как послать окну комбинацию клавишь

dieego6

Новичок
Сообщения
2
Репутация
0
Доброго времени суток!

есть вот такой код
Код:
...
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
    	
             Sleep(GUICtrlRead($Input1)*1000)	
	if  WinWait(GUICtrlRead($Combo1),"",0)>0 & BitAND(WinGetState(GUICtrlRead         ($Combo1)),8)>0  Then 
			If $temp>0 Then
			Send("^r")			
			EndIf
	EndIf
WEnd
...
Суть в том что Нужно реализовать такую штуку - проверить что открыто окно и то что оно сейчас открыть и через заданный промежуток времени отправлять окну "Ctrl+r". Этот код работает т.е. Sleep(GUICtrlRead($Input1)*1000) - заданный промежуток, WinWait(GUICtrlRead($Combo1),"",0)>0 & BitAND(WinGetState(GUICtrlRead($Combo1)),8)>0 - окно открыто и активно, $temp>0 - условие при котором посылается сочетание клавиш, Send("^r") - послать сочетание.
Тока вот есть проблемка - сначала вроде бы незаметна, но при переводе фокуса ,например на редактор кода autoit, комбинация срабатывает и там, хотя BitAND(WinGetState(GUICtrlRead($Combo1)),8)>0 - проверял. Как так происходит?

А ещё окно гуишное в этом коде не закрывается :smile: - подскажите как это получше обработать.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 713
Re: [Элементы GUI] условие не срабатывает

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


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

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

С уважением, Модератор форума.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
В цикле с обработкой формы Sleep вставлять вообще нельзя, иначе вы получите огромные зависания формы. Что у Вас и происходит.

Идем далее. Вам понадобится AdlibRegister
Выносите Ваш кусок кода в отдельную ф-ю и обрабатываете ее через AdlibRegister
 
Верх