Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как выбрать из 2-х экранов нужный

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

1. Kostick - 28 Октября, 2022 - 06:55:27 - перейти к сообщению
Есть рамка, которая показывает область поиска изображения. Но как настроить программу, чтобы рамка появлялась на том экране, на котором находится мышка.
CODE:
int array[1920][1080];
initialarray(#array[0][0], 255);

visual(200, 100, 700, 500, 3); // координаты рамки и толщина линии
loop()sleep(10);


function visual(int sx, int sy, int ex, int ey, int width)
{
visualwindow(0, 0, 0, ex-sx, width, sx, sy, 100, #array[0][0]);
visualwindow(1, 0, 0, width, ey-sy, sx, sy, 100, #array[0][0]);
visualwindow(2, 0, 0, ex-sx+width, width, sx, ey, 100, #array[0][0]);
visualwindow(3, 0, 0, width, ey-sy, ex, sy, 100, #array[0][0]);
}


На видео в первый раз у меня мышка на правом экране, а рамка появляется на левом. Во втором случае наоборот, мышка на левом экране, а рамка появляется на правом.

Демонстрация проблемы с рамкой на двух экранах:(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
В общем решил проверить, какое разрешение видит программа, когда я запускаю код.
На видео вы можете заметить, что когда окно Kibor'а я запускаю в левом экране, то разрешение через texout выводится 5120х1440, а когда на правом, то 2560х1440.

CODE:
win W_Kib;
int xM_Kib, yM_Kib;
getmouse(xM_Kib, yM_Kib);
W_Kib=getwindow(0, xM_Kib, yM_Kib);
int eX_Kib, eY_Kib;
eX_Kib=W_Kib.widthclient;
eY_Kib=W_Kib.heightclient;
TextOut(0, format(eX_Kib) + ", " + format(eY_Kib), 0, 1900, 100, 0, 16777215);
pause(10000);

function TextOut(int n, string text, int o, int x, int y, int colt, int colf)
{
textbkcolor (colt,colf);
textout(n, x, y, text, o);
}


Ссылка на демонстрацию:(для просмотра ссылки Вам необходимо авторизоваться)
2. Zireael - 28 Октября, 2022 - 17:46:11 - перейти к сообщению
 Цитата:
то разрешение через texout выводится 5120х1440, а когда на правом, то 2560х1440.

Всё верно, если второй монитор справа от первого, то его координаты будут 2560, 0, 5120, 1440. Даже если будет 10 мониторов, то рабочий стол будет 1, просто большого размера.
Получить разрешение, исходя из этого указать координаты для функции, которая выведет рамку.
3. Kostick - 29 Октября, 2022 - 00:28:11 - перейти к сообщению
 Zireael пишет:
 Цитата:
то разрешение через texout выводится 5120х1440, а когда на правом, то 2560х1440.

Всё верно, если второй монитор справа от первого, то его координаты будут 2560, 0, 5120, 1440. Даже если будет 10 мониторов, то рабочий стол будет 1, просто большого размера.
Получить разрешение, исходя из этого указать координаты для функции, которая выведет рамку.

Просто меня удивило, что находясь на разных мониторах общее разрешение не одинаковое - 5120х1440, а отличается в зависимости от того, на каком мониторе окно kibor'а.

Powered by ExBB FM 1.0 Final