Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
konctantin777
Отправлено: 17 Июня, 2023 - 16:20:48
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1137
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Добрый день. Запутался немного...
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);

то всегда эту проверку проходит, что окно открыто. Как правильно проверять в начале и в "середине" открыто ли окно игры ?
 
 Top
Zireael
Отправлено: 17 Июня, 2023 - 16:24:55
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4401
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
setwindowparam(w);
Возвращает 1 если окно есть.
0 если его нет.
 
 Top
konctantin777
Отправлено: 17 Июня, 2023 - 17:45:39
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1137
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Не получается. Всегда пишет, что окно есть.
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 нач;
}
 
 Top
Zireael
Отправлено: 17 Июня, 2023 - 17:58:00
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4401
Дата рег-ции: Нояб. 2017  
Репутация: 580




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("Окно не найдено");
 
 Top
konctantin777
Отправлено: 17 Июня, 2023 - 18:04:16
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1137
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




Надо w=window (-1, "Notepad", -1); добавить иначе, при закрытии, открытии блокнота перестаёт реагировать.
 
 Top
Zireael
Отправлено: 17 Июня, 2023 - 18:08:33
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4401
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Надо w=window (-1, "Notepad", -1); добавить иначе, при закрытии, открытии блокнота перестаёт реагировать.

Ничего не понятно.
 
 Top
konctantin777
Отправлено: 17 Июня, 2023 - 18:13:49
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1137
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




 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 начало;

(Отредактировано автором: 17 Июня, 2023 - 18:19:27)

 
 Top
Zireael
Отправлено: 17 Июня, 2023 - 18:25:22
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4401
Дата рег-ции: Нояб. 2017  
Репутация: 580




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("Окно не найдено");
 
 Top
konctantin777
Отправлено: 17 Июня, 2023 - 18:29:21
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1137
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 6




 Zireael пишет:
loop()
Сложнее использовать в визуальном )
А while не совсем подходит т.к. надо проверить и что то делать дальше, а не на этом останавливаться.

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



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4401
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Определение наличия окна если его закрыть

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

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

Нет.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by