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); |