Выражаю огромную благодарность Владимиру за помощь в решении моей проблемы!
И всем тем кто пытался разобраться в этом вопросе!
Собственно далее пойдет описываться способ "как все сделать по уму" в котором конечно же не моя заслуга, я лишь опишу что и как делать...
Необходимо создать блок кода:
CODE:int WN=-1; //объявление и инициализация переменной WN
if (window ("Имя Приложения/Окна A") !=0 ) // Проверка на наличия окна в системе
{
W_Kib=window ("Имя Приложения/Окна A"); // присваивание W_Kib индификатора окна А
WN=0; // Присваивание индивидуального значения переменной WN для окна A
}
if (window ("Имя Приложения/Окна B") !=0 ) // Проверка на наличия окна в системе
{
W_Kib=window ("Имя Приложения/Окна B"); // присваивание W_Kib индификатора окна B
WN=1; // Присваивание индивидуального значения переменной WN для окна B
}
И так далее в зависимости от необходимом количестве отслеживаемых окон.
Теперь для вызова того или иного окна необходимо выполнить проверку с помощью оператора if:
CODE:if (WN==0){
activate(W_Kib); // активация найденного окна А
// какие еще либо действия в теле оператора...
}
Точно так же происходит проверка для окна B, только условие будет уже WN==1.
Некоторые уточнения:
Для поиска окон заново, так как они могут быть не активными/активными необходимо вернуться снова к блоку где происходила инициализация переменной WN, так как значение W_Kib в зависимости от найденных окон может меняться! А это значит, что и указатель на окно будет изменен. (для этого можно использовать "Переход в виз.редакторе" или же метку goto)
О привязках:
В главном окне виз. редактора должно быть выставлено значение "По Выбору"
В других блоках, например findimage или mouse и т.д...
Должно быть так:
Поиск в: Активный по указателю
Указатель на окно: W_Kib
На этом думаю все, еще раз огромное спасибо за помощь всем тем, кто помогал разобраться мне с этой проблемой и отдельное автору данного софта!(Отредактировано автором: 09 Апреля, 2023 - 11:11:21) |