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

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

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

> Без описания
netspasibo
Отправлено: 22 Декабря, 2015 - 03:31:05
Post Id



Пользователь
Прохожий


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




Добрый день.
Если ли способы идентификации окна по его ID, например?
Если использовать
CODE:
win window=window ("Документ.txt — Блокнот", "Notepad", -1)

то при запуске нескольких копий блокнота он теряется.
Если использовать
CODE:
getmouse(x, y);
window=getwindow(1, x, y);

то определяет верно, но при запуске нескольких одинаковых окон скрипт начинает сбоить и, как бы, "пропускает" функции или "не замечает" их. Так же не всегда есть возможность привязки к окну клиента. А вот определение ID клиента и привязка уже к нему, была бы в самый раз. Тем более, изменения размера окна влияет ведь на функцию?
Буду рад вашей помощи.
Спасибо.

(Отредактировано автором: 22 Декабря, 2015 - 03:32:37)

 
 Top
Kibor
Отправлено: 22 Декабря, 2015 - 04:29:03
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




что это за id?
 
 Top
netspasibo
Отправлено: 22 Декабря, 2015 - 07:55:17
Post Id



Пользователь
Прохожий


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




PID.
С ошибкой написал.

(Отредактировано автором: 22 Декабря, 2015 - 07:55:38)

 
 Top
Kibor
Отправлено: 22 Декабря, 2015 - 09:56:10
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 netspasibo пишет:
Тем более, изменения размера окна влияет ведь на функцию?

не влияет.
указатель тот же остался. просто если зачем то то после запуска бота изменил позицию размер окна, то надо заново получить указатель, так как при его получение записывается структура указателя.
wind.width = ширина окна
wind.height = высота окна
wind.left = позиция по x относительно левого края экрана
wind.top = позиция по y относительно левого края экрана
wind.widthclient = ширина клиетской части окна (без системного меню и рамки)
wind.heightclient = высота клиетской части окна (без системного меню и рамки)
wind.leftclient = позиция клиетской части по x относительно левого края экрана
wind.topclient = позиция клиетской части по y относительно левого края экрана
wind.name = название окна
wind.class = название класса

 netspasibo пишет:
то определяет верно, но при запуске нескольких одинаковых окон скрипт начинает сбоить и, как бы, "пропускает" функции или "не замечает" их

ничего не сбивается... правильно надо пользоваться getwindow.

по pid нет смысла определять, так как не будет известна структура указателя и он меняется.

такой же смысл будет использовать такой скрипт для определения HWND который можно использовать в своей программе потом (запустить - навести мышь на окно нужное)
CODE:
int pos_size_edit0[1][4];
string text_edit0[1];

pos_size_edit0[0][0]=4; pos_size_edit0[0][1]=5; pos_size_edit0[0][2]=172; pos_size_edit0[0][3]=20;
text_edit0[0]="";

//////////

createdialog(0, EDIT, #pos_size_edit0[0][0], #text_edit0[0]);
//////////

showdialog(0, "HWND", 580, 373, 187, 59, 1, 1);
//////////

int x, y;

loop()
{
getmouse(x, y);
text_edit0[0]=format(formatwi(getwindow(1, x, y)));
sleep(100);
}



в своем скрипте так указатель задать..
CODE:
win w1=formatiw(54685);// что получили на первом
win w2=formatiw(265434);// что получили на втором


но опять же не будет заполнена структура.

поэтому используйте такой самый удобный подход.
CODE:
win w1, w2;
int x, y;

textout(0, 20, 20, "наведите мышь на окно 1 и нажмите Ё.", 0);
while (getkeystate(192)==0) sleep(10);
getmouse(x, y);
w1=getwindow(1, x, y);
while (getkeystate(192)==1) sleep(10);

textout(0, 20, 20, "наведите мышь на окно 2 и нажмите Ё.", 0);
while (getkeystate(192)==0) sleep(10);
getmouse(x, y);
w2=getwindow(1, x, y);
while (getkeystate(192)==1) sleep(10);
 
 Top
netspasibo
Отправлено: 23 Декабря, 2015 - 00:15:33
Post Id



Пользователь
Прохожий


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




Как раз использую этот самый удобный подход.
Скрипт начинает сбоить после того, как персонажа оглушают (или сон, или еще какой дебаф приводящий к временнному бездействию), он не может реагировать на действия Кибор'а и все, начинаются сбои. Getcolor перестает находить (видеть) определенные заданные по координатам пиксели, и пошло поехало.
В функцию CREATE_INTERFACE нет возможности добавления картинок небольшого размера?
Будет ли реализовано?
 
 Top
Kibor
Отправлено: 23 Декабря, 2015 - 06:56:04
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 netspasibo пишет:
Скрипт начинает сбоить после того, как персонажа оглушают (или сон, или еще какой дебаф приводящий к временнному бездействию), он не может реагировать на действия Кибор'а и все, начинаются сбои. Getcolor перестает находить (видеть) определенные заданные по координатам пиксели, и пошло поехало.

И что? из за этого меняется HWND окна ?
Идентификация окна не при чем тут.
Я не знаю что там он перестает видеть, проверить просто. Включить потоковое обновление игры в вкладке графика и посмотреть как будет видеть Кибор игру когда такое случается.
(Добавление)
 netspasibo пишет:
В функцию CREATE_INTERFACE нет возможности добавления картинок небольшого размера?
Будет ли реализовано?

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


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




Powered by