yasumotto |
Отправлено: 13 Июня, 2022 - 15:02:55
|
Наблюдатель
Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2020
Репутация: 0
|
Привет.
Нашел тему на форуме где просили сделать чтобы на 4 окна дублировались движения с 1 клавиши нажатие и нажатия и движения мышки.
Я хочу сделать на два окна, 1 окно на 1 мониторе, 2 на 2,
попробовал этот скрипт переделал на два окна CODE:win w1, w2;
int x, y;
textout( 0, 10, 10, "Нажми ё над первым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(600, 300);
getmouse(x, y);
w1=getwindow(1, x, y);
textout( 0, 10, 10, "Нажми ё над вторым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(500, 300);
getmouse(x, y);
w2=getwindow(1, x, y);
textout( 0, -190, -110, "Нажми ё над вторым окном", 1);
loop() {
if(getkeystate(1)==1) {
getmouse(x, y, w1); sleep(50);
sendmouse(LEFT, x, y, w2);}
}
но без успешно не дублирует не мышку на второе окно не нажатия возможно я что то упускаю названия окон фиксированные.(Отредактировано автором: 13 Июня, 2022 - 15:03:41) |
|
|
Zireael |
Отправлено: 14 Июня, 2022 - 11:37:30
|
Эксперт
Покинул форум
Сообщений всего: 4468
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как на примере двух окон паинт можно задублировать движения и клики и зажатия мышки
CODE:win w1, w2;
int x, y;
textout( 0, 10, 10, "Нажми ё над первым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(600, 300);
getmouse(x, y);
w1=getwindow(1, x, y);
textout( 0, 10, 10, "Нажми ё над вторым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(500, 300);
getmouse(x, y);
w2=getwindow(1, x, y);
textout( 0, -190, -110, "Нажми ё над вторым окном", 1);
loop() {
if(getkeystate(1)==1) // если нажата левая кнопка мыши
{
getmouse(x, y, w1); // получить координаты
sendmousedown(LEFT, x, y, w2); // зажать левую кнопку мыши во втором окне
while(getkeystate(1)==1) // пока нажата левая кнопка мыши
{
getmouse(x, y, w1);
sendmousemove(x, y, w2); // переместить курсор
sleep(10);
}
sendmouseup(LEFT, x, y, w2); // отпустить левую кнопку мыши
}
sleep(1);
} |
|
|
yasumotto |
Отправлено: 14 Июня, 2022 - 23:48:35
|
Наблюдатель
Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2020
Репутация: 0
|
Zireael пишет: Цитата: как на примере двух окон паинт можно задублировать движения и клики и зажатия мышки
CODE:win w1, w2;
int x, y;
textout( 0, 10, 10, "Нажми ё над первым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(600, 300);
getmouse(x, y);
w1=getwindow(1, x, y);
textout( 0, 10, 10, "Нажми ё над вторым окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(500, 300);
getmouse(x, y);
w2=getwindow(1, x, y);
textout( 0, -190, -110, "Нажми ё над вторым окном", 1);
loop() {
if(getkeystate(1)==1) // если нажата левая кнопка мыши
{
getmouse(x, y, w1); // получить координаты
sendmousedown(LEFT, x, y, w2); // зажать левую кнопку мыши во втором окне
while(getkeystate(1)==1) // пока нажата левая кнопка мыши
{
getmouse(x, y, w1);
sendmousemove(x, y, w2); // переместить курсор
sleep(10);
}
sendmouseup(LEFT, x, y, w2); // отпустить левую кнопку мыши
}
sleep(1);
}
с паинтом работает. с игрой нет приходится мышку переводить на второй экран тогда начинает кликать если я мышку увожу со второго экрана то он не чего не делает.
думаю надо разобраться сначала почему не работает без мышки над окном
CODE:enablerealmouse(14, 3, 3, 3);
win w1;
int x, y;
textout( 0, 10, 10, "нажать ё над окном", 1);
while(getkeystate(192)==0) sleep(20);
while(getkeystate(192)==1) sleep(20);
beep(600, 300);
getmouse(x, y);
w1=getwindow(1, x, y);
textout( 0, -190, -110, "нажать ё над окном", 1);
loop()
{
sendmousemove(138, 279, w1);
sleep(400);
sendmouse(LEFT, 138, 279, w1);
sleep(400);
sendmousemove(1204, 158, w1);
sleep(500);
sendmouse(LEFT, 1204, 158, w1);
sleep(400);
sendmousemove(29, 337, w1);
sleep(200);
sendmouse(LEFT, 29, 337, w1);
sleep(400);
sendmousemove(1052, 263, w1);
sleep(400);
sendmouse(LEFT, 1052, 263, w1);
} |
|
|
Zireael |
Отправлено: 16 Июня, 2022 - 02:38:50
|
Эксперт
Покинул форум
Сообщений всего: 4468
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Работа скрипта в фоне невозможна без нахождения над окном курсора мыши?
Вы же сами написали:
Цитата: с паинтом работает.
Если не работает в каком-то приложении, то это уже особенности этого приложения. |
|
|
yasumotto |
Отправлено: 16 Июня, 2022 - 09:05:06
|
Наблюдатель
Покинул форум
Сообщений всего: 39
Дата рег-ции: Май 2020
Репутация: 0
|
Zireael пишет: Цитата: Работа скрипта в фоне невозможна без нахождения над окном курсора мыши?
Вы же сами написали:
Цитата: с паинтом работает.
Если не работает в каком-то приложении, то это уже особенности этого приложения.
Это игра Eve online.
Какие-то ещё пути решения этой задачи есть ? Может режим античит? Как я понял для его работы нужны мышь и Клава ps2.
Запуск этого окна в виртуальной машине не подходит (хоть и решит данную проблему)
Просто не понимаю почему с курсором над приложением работает а без него нет, sendmouse воспринимает.. странно |
|
|
|