Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Переключение между окнами с помощью комбинации Win+1

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

1. DGEN - 09 Февраля, 2018 - 16:18:04 - перейти к сообщению
Всем доброго времени суток!

Написал небольшой скрипт для Л2, в котором нужно переключаться между окнами и посылать соответствующие команды (скрипт прилагается ниже).

Проблема в том, что в моём скрипте переключение окон реализовано с помощью команды mouse, а хочется через комбинацию Win+1/Win+2 и т.д. (окна стоят в правильном порядке).
Скрин расположения окон:(для просмотра ссылки Вам необходимо авторизоваться) Пытался реализовать переключение между окнами с помощью этих вариантов (смотреть ниже), но ни один не работает...

CODE:
keydown(91);
key(49);
keyup(91);

CODE:
keydown(91);
keydown(49);
keyup(49);
keyup(91);

CODE:
keydown(LWIN);
key(49);
keyup(LWIN);

CODE:
keydown(LWIN);
keydown(49);
keyup(49);
keyup(LWIN);


Подскажите пожалуйста что делаю не так.



Сам скрипт:
CODE:
int col_pix, X_pix, Y_pix;
int col_pix1, X_pix1, Y_pix1;
int col, xek, yek;

/////////////////////////////////////////////////////////////////////////////////////////
nastroit();

mouse(LEFT, 521, 458);
Start:
if (getcolor(X_pix, Y_pix)==col_pix)
{
pause (2000);
goto Attack;
}
else {
goto Start;
}
Attack:
mouse(LEFT, 1397, 469);
sleep(20);
key(F1);
mouse(LEFT, 521, 458);

Check:
if (getcolor(X_pix, Y_pix)==col_pix)
{
goto Check;
}
else
{
mouse(LEFT, 1397, 469);
sleep(20);
key(F2);
mouse(LEFT, 521, 458);
goto Start;
}

/////////////////////////////////////////////////////////////////////////////////////////

function nastroit()
{
getdisplay(col, xek, yek);
xek=xek/2-200; yek=yek/2;

textbkcolor (0,255);
textout(0, xek, yek, "Âîçüìèòå ìîáà â òàðãåò. Íàâåäèòå êóðñîð íà íà÷àëî ïîëîñû õï ìîáà è íàæìèòå ¨", 0);
e: if (getkeystate(192)==0) {sleep(50); goto e;}
getmouse(X_pix, Y_pix);
q: if (getcolor(X_pix, Y_pix)==getcolor(X_pix-1, Y_pix)) {X_pix--; goto q;}
col_pix=getcolor(X_pix, Y_pix);
pause (1000);

textbkcolor (0,65280);
textout(0, xek, yek, "Íàâåäèòå êóðñîð íà êîíåö ïîëîñû õï ìîáà è íàæìèòå ¨", 0);
e1: if (getkeystate(192)==0) {sleep(50); goto e1;}
getmouse(X_pix1, Y_pix1);
q1: if (getcolor(X_pix1, Y_pix1)==getcolor(X_pix1+1, Y_pix1)) {X_pix1++; goto q1;}
col_pix1=getcolor(X_pix1, Y_pix1);
pause (1000);

textout(0, xek, yek, "", 2);
resettextout(1);
textbkcolor (0,65280);
}
2. Dantes3000 - 09 Февраля, 2018 - 16:26:18 - перейти к сообщению
CODE:

win w1="окно1";
win w2="окно2";

loop()
{
if(getkeystate(91)==1 //если нажата Win
{
if(getkeystate(49)==1 activate(w1); //если нажато 1 активируем первое окно
if(getkeystate(50)==1 activate(w2); //если 2 - второе
}
}


но лучше использовать нейтральные клавиши, типа ПРОБЕЛ+1
3. Zireael - 09 Февраля, 2018 - 17:24:17 - перейти к сообщению
CODE:
key('a', 1, 0, w) - принимает 4 параметра.

2й параметр - если окно не активно, этот параметр со значением 1 активирует нужное окно или контрол передавая ему фокус, если 0 - не активирует.
code (Отобразить)

Запускать скрипт когда активно окно, в котором должно нажиматься F1. Т. е. оно будет w[0], второе будет w[1].
4. DGEN - 10 Февраля, 2018 - 04:20:22 - перейти к сообщению
Всем огромное спасибо!! Вопрос решился через:
CODE (Отобразить)

Хотя вчера такой подход упорно не хотел работать.....

Powered by ExBB FM 1.0 Final