Например, код нажимает раз в 5 секунд клавишу i. В БДО должно открываться окно инвентаря. Вот как работает в блокноте, и как в БДО:(для просмотра ссылки Вам необходимо авторизоваться) Т.е. в БДО при запуске активируется окно БДО, и нажатия передаются, но когда вручную переходишь на другое окно (на видео я нажал на визуальный редактор), нажатия прекращаются.
Единственное, у окна БДО не контрола в отличии от блокнота, поэтому приходится указывать просто имя окна:
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Есть ли еще варианты передачи нажатий клавиш и мыши в окно в фоне?
есть функция "activate(wind);", но она активирует окно полностью, и тогда не получится работать в другом окне. Может у вас есть идеи?
Есть видео от Vladimir Borda Работа "Кибор в скрытом окне игры под Фростом", где он показывает код, который сворачивает окно и выводит его уменьшенную копию сбоку, при этом клики в него отправляются. Я попробовал так же, вот что происходит (работа сопровождается повторяющимися звуками ошибки):(для просмотра ссылки Вам необходимо авторизоваться) Вот код:
CODE:
win W_Kib=selectwindow ("Black Desert - 406459");
//win W_Kib=window ("Black Desert - 406459", "BlackDesertWindowClass", -1);
int eX_Kib, eY_Kib;
eX_Kib=W_Kib.widthclient;
eY_Kib=W_Kib.heightclient;
activate(W_Kib);
transparency (0, W_Kib);
visualwindow(0, 0, 0, W_Kib.widthclient, W_Kib.heightclient, 1095, 565, 25, W_Kib);
KIB_1: Key(1, W_Kib, 0, 73, "Клик", 0);
sleep (500);
goto KIB_1;
function Key(int ew, win w, int p1, int c, string k, int p2)
{
pause(p1);
if (ew==0)
{
if (k=="Клик"){key(c); goto hy;}
if (k=="Нажать"){keydown(c); goto hy;}
if (k=="Отпустить"){keyup(c); goto hy;}
}
if (ew==1)
{
if (k=="Клик"){sendkey(c, w); goto hy;}
if (k=="Нажать"){sendkeydown(c, w); goto hy;}
if (k=="Отпустить"){sendkeyup(c, w); goto hy;}
}
hy: pause (p2);
}
//win W_Kib=window ("Black Desert - 406459", "BlackDesertWindowClass", -1);
int eX_Kib, eY_Kib;
eX_Kib=W_Kib.widthclient;
eY_Kib=W_Kib.heightclient;
activate(W_Kib);
transparency (0, W_Kib);
visualwindow(0, 0, 0, W_Kib.widthclient, W_Kib.heightclient, 1095, 565, 25, W_Kib);
KIB_1: Key(1, W_Kib, 0, 73, "Клик", 0);
sleep (500);
goto KIB_1;
function Key(int ew, win w, int p1, int c, string k, int p2)
{
pause(p1);
if (ew==0)
{
if (k=="Клик"){key(c); goto hy;}
if (k=="Нажать"){keydown(c); goto hy;}
if (k=="Отпустить"){keyup(c); goto hy;}
}
if (ew==1)
{
if (k=="Клик"){sendkey(c, w); goto hy;}
if (k=="Нажать"){sendkeydown(c, w); goto hy;}
if (k=="Отпустить"){sendkeyup(c, w); goto hy;}
}
hy: pause (p2);
}
Если вместо "selectwindow" использовать просто "window", то окно выводится, но клики так же не передаются:(для просмотра ссылки Вам необходимо авторизоваться)