Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Определение наличия окна если его закрыть

Страниц (2): [1] 2 »
 

1. konctantin777 - 17 Июня, 2023 - 08:20:48 - перейти к сообщению
Добрый день. Запутался немного...
CODE:
win w=window (-1, -1, -1, -1, 1026, 735, -1);
if (w==0){messagebox ("Нет окна"); goto er;}
activate(w);
pause(1000);


Этот код у меня в начале скрипта. Если окно открыто, то норм. Если закрыто, то пишет, что "нет окна". Но если в середине скрипта закрыть окно и проверить
CODE:
setwindowparam(w); pause(500);
if (w==0){messagebox ("Нет окна"); goto er;}
activate(w);
pause(1000);

то всегда эту проверку проходит, что окно открыто. Как правильно проверять в начале и в "середине" открыто ли окно игры ?
2. Zireael - 17 Июня, 2023 - 08:24:55 - перейти к сообщению
 Цитата:
setwindowparam(w);
Возвращает 1 если окно есть.
0 если его нет.
3. konctantin777 - 17 Июня, 2023 - 09:45:39 - перейти к сообщению
Не получается. Всегда пишет, что окно есть.
CODE:
win w=window ("Безымянный – Блокнот");

нач:;

setwindowparam(w); pause(500);

if (setwindowparam(w)==0)
{
textout(0, 100, 50, "НЕТ окна", 1); goto нач;
}
else
{
textout(0, 100, 50, "есть окно", 1); setwindowparam(w);
activate(w);
pause(1000); goto нач;
}
4. Zireael - 17 Июня, 2023 - 09:58:00 - перейти к сообщению
CODE:
win w=window (-1, "Notepad", -1);
if(w)
{
loop()
{
int result = setwindowparam(w);
if (result==0)
{
textout(0, 100, 50, "НЕТ окна", 1);
pause(100);
}
else
{
textout(0, 100, 50, "есть окно", 1);
activate(w);
pause(1000);
}
}
}
else messagebox("Окно не найдено");
5. konctantin777 - 17 Июня, 2023 - 10:04:16 - перейти к сообщению
Надо w=window (-1, "Notepad", -1); добавить иначе, при закрытии, открытии блокнота перестаёт реагировать.
6. Zireael - 17 Июня, 2023 - 10:08:33 - перейти к сообщению
 Цитата:
Надо w=window (-1, "Notepad", -1); добавить иначе, при закрытии, открытии блокнота перестаёт реагировать.

Ничего не понятно.
7. konctantin777 - 17 Июня, 2023 - 10:13:49 - перейти к сообщению
 konctantin777 пишет:
w=window (-1, "Notepad", -1);
без этого, если несколько раз открыть, закрыть блокнот- скрипт перестаёт реагировать.
Вот так получается, что всегда реагирует на наличие окна. Правильно так определять наличие окна и обновлять его характеристики ?

CODE:
win w=window (-1, "Notepad", -1);
int result = setwindowparam(w);


начало:;

w=window (-1, "Notepad", -1);
result = setwindowparam(w);

if (result==0)
{
textout(0, 100, 50, "НЕТ окна", 1);
pause(100);
}
else
{
textout(0, 100, 50, "есть окно", 1); setwindowparam(w);
activate(w);
pause(1000);
}
goto начало;
8. Zireael - 17 Июня, 2023 - 10:25:22 - перейти к сообщению
CODE:
win w = window (-1, "Notepad", -1);
if(w)
{
loop()
{
int result = setwindowparam(w);
if (result==0)
{
textout(0, 100, 50, "НЕТ окна, ждём когда появится", 1);
while(window (-1, "Notepad", -1)==0) pause(100); // ждать когда появится окно
w = window (-1, "Notepad", -1);
}
else
{
textout(0, 100, 50, "есть окно", 1);
activate(w);
pause(1000);
}
}
}
else messagebox("Окно не найдено");
9. konctantin777 - 17 Июня, 2023 - 10:29:21 - перейти к сообщению
 Zireael пишет:
loop()
Сложнее использовать в визуальном )
А while не совсем подходит т.к. надо проверить и что то делать дальше, а не на этом останавливаться.

Который я код выложил- так неправильно ? (чтобы в виз редакторе просто вставить в блок кода..)
10. Zireael - 17 Июня, 2023 - 10:41:22 - перейти к сообщению
 Цитата:
Определение наличия окна если его закрыть

setwindowparam(w) возвращает 0 если окна нет. Это ответ на ваш вопрос.
 Цитата:
А while не совсем подходит т.к. надо проверить и что то делать дальше

Догадываться что вы хотите сделать никто не будет.
 Цитата:
Который я код выложил- так неправильно ?

Нет.

Powered by ExBB FM 1.0 Final