DGEN |
Отправлено: 10 Февраля, 2018 - 00:18:04
|
Прохожий
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2018
Репутация: 0
|
Всем доброго времени суток!
Написал небольшой скрипт для Л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);
} (Отредактировано автором: 10 Февраля, 2018 - 00:19:11) |
|
|
Zireael |
Отправлено: 10 Февраля, 2018 - 01:24:17
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
CODE:key('a', 1, 0, w) - принимает 4 параметра.
2й параметр - если окно не активно, этот параметр со значением 1 активирует нужное окно или контрол передавая ему фокус, если 0 - не активирует.
code (Отобразить)CODE:win w[10]; // массив для окон
Find_Window(#w[0], "L2UnrealWWindowsViewportWindow");
function Find_Window(win #w, string class) // функция ищет окна л2
{
external(INT, "FindWindow", "FindWindowExA", "user32.dll");
int n=0, handle=FindWindow(0, 0, class, 0);;
while (handle!=0)
{
w[n]=formatiw(handle); n++;
handle=FindWindow(0, handle, class, 0);
}
return n;
}
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, 1, 0, w[0]);
//mouse(LEFT, 521, 458);
Check:
if (getcolor(X_pix, Y_pix)==col_pix)
{
goto Check;
}
else
{
//mouse(LEFT, 1397, 469);
sleep(20);
key(F2, 1, 0, w[1]);
//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, "Aicuieoa iiaa a oa?aao. Iaaaaeoa eo?ni? ia ia?aei iieinu oi iiaa e ia?ieoa ?", 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, "Iaaaaeoa eo?ni? ia eiiao iieinu oi iiaa e ia?ieoa ?", 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);
}
Запускать скрипт когда активно окно, в котором должно нажиматься F1. Т. е. оно будет w[0], второе будет w[1]. |
|
|
DGEN |
Отправлено: 10 Февраля, 2018 - 12:20:22
|
Прохожий
Покинул форум
Сообщений всего: 8
Дата рег-ции: Янв. 2018
Репутация: 0
|
Всем огромное спасибо!! Вопрос решился через:
CODE (Отобразить)
CODE:
win w1=window ("Lineage II", "l2UnrealWWindowsViewportWindow", -1, -1, 1024, 768, -1);
win w2=window ("Lineage II", "l2UnrealWWindowsViewportWindow", -1, -1, 800, 600, -1);
activate (w1);
activate (w2);
Хотя вчера такой подход упорно не хотел работать.....(Отредактировано автором: 10 Февраля, 2018 - 12:20:57) |
|
|
|