Budni |
Отправлено: 02 Июня, 2019 - 12:30:45
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Подскажите пожалуйста как сделать, пока тока так получается, как быть со скриншотами?
CODE:
int x[4], y[4];
getdisplay(color, X_displey, Y_displey);// Для начала я думаю нужно получить размер экрана
int a[X_displey][Y_displey];//Выделяем память, но не уверен что правильно значение добавил
int ekran screen (#a[0][0], 0, 0, X_displey, Y_displey, -1);// а сюда верно записал?
open (ekran)//Тут нужно как то открыть скриншот на весь экран вообще не представляю как это сделать, хочу как в инструменте быстрого создания схем
textbkcolor(255, 16637860);
textout(0, 500, 500, "Получить x[0],y[0]", 1);
while(getkeystate(192)==0)sleep(10);// Ждем когда будет нажата Ё, чтобы получить координаты
getmouse(x[0], y[0]); // получаем координаты курсора
resettextout(1); // сбрасываем текст
// Получаем значения других координат
textout(0, 500, 500, "Получить x[1],y[1]", 1);
while(getkeystate(192)==0)sleep(10);
getmouse(x[1], y[1]);
resettextout(1);
textout(0, 500, 500, "Получить x[2],y[2]", 1);
while(getkeystate(192)==0)sleep(10);
getmouse(x[2], y[2]);
resettextout(1);
textout(0, 500, 500, "Получить x[3],y[3]", 1);
while(getkeystate(192)==0)sleep(10);
getmouse(x[3], y[3]);
resettextout(1);
///////////////////////////////////////
//Далее надо как то занести полученные данные в блокнот, тут я вообще не понимаю
fopen ("c:\koordinaty.txt", "a");
fwrite(x[0],x[1],x[2],x[3],y[0],y[1],y[2],y[3],); // Так??
fclose();
(Отредактировано автором: 02 Июня, 2019 - 12:31:22) |
|
|
Zireael |
Отправлено: 02 Июня, 2019 - 13:06:11
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: open (ekran)//Тут нужно как то открыть скриншот
CODE:int Image_0[1920][1080];
loadimage (#Image_0[0][0], "C:\image.bmp"); // загрузить картинку
visualwindow(0, 0, 0, imagewidth(#Image_0[0][0]), imageheight(#Image_0[0][0]), 0, 0, 100, #Image_0[0][0]); // вывести
loop()sleep(10); |
|
|
Budni |
Отправлено: 02 Июня, 2019 - 13:16:58
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Zireael пишет: Цитата: open (ekran)//Тут нужно как то открыть скриншот
CODE:int Image_0[1920][1080];
loadimage (#Image_0[0][0], "C:\image.bmp"); // загрузить картинку
visualwindow(0, 0, 0, imagewidth(#Image_0[0][0]), imageheight(#Image_0[0][0]), 0, 0, 100, #Image_0[0][0]); // вывести
loop()sleep(10);
А можно как то не сохраняя скриншот на диск а брать его из переменной и открывать? |
|
|
Zireael |
Отправлено: 02 Июня, 2019 - 13:20:04
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: А можно как то не сохраняя скриншот на диск а брать его из переменной и открывать?
Цитата: visualwindow- Выводит часть изображения выбранного окна, файла или экрана поверх всех окон или на диалоговое окно
(Добавление)
CODE:int count=3; // сколько координат нужно получить
win w=window (-1, "Edit", window (-1, "Notepad", -1)); // указатель на окно (блокнот в данном случае)
if(w) // если окно найдено
{
new int x[count]; // массив для координат X
new int y[count]; // массив для координат Y
new int scr[w.width+1][w.height+1]; // или клиентские координаты w.widthclient w.heightclient если указатель на главное окно
screen (#scr[0][0], 0, 0, w.width, w.height, w); // сделать скрин
visualwindow(0, 0, 0, sizearray(scr), sizearray(scr[]), 0, 0, 100, #scr[0][0]); // вывести
textbkcolor(255, 16637860);
for(int i=0; i<count; i++)
{
textout(0, 500, 500, "Получить x["+format(i)+"], y["+format(i)+"]", 0);
while(getkeystate(192)==0)sleep(10);// Ждем когда будет нажата Ё, чтобы получить координаты
while(getkeystate(192))sleep(10); // ждать когда будет отпущена Ё
getmouse(x[i], y[i]); // получаем координаты курсора
}
resettextout(1);
if(fopen ("C:\koordinaty.txt", "w")) // открыть файл для записи
{
for(i=0; i<count; i++) // для всех координат
{
fwrite(format(x[i])+", "+format(y[i])); // записывать координаты X и Y
fwrite(ENDL); // перенос строки
}
fclose();
start("C:\koordinaty.txt");
}
}
else messagebox("Окно не найдено"); |
|
|
Zireael |
Отправлено: 02 Июня, 2019 - 13:59:04
|
Эксперт
Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: а можно как то увеличивать, уменьшать скриншот?
Цитата: visualwindow(0, 200, 250, 300, 320, 10, 10 , 100, #Image_0[0][0]);
параметры:
1 - порядковый номер вывода изображения. от 0 до 1000.
2-5 - рамка захвата (клиентские координаты по указателю w)
6-7 - позиция вывода на экран изображения (экранные координаты)
8 - масштаб вывода
9 - указатель на окно или двухмерный массив int в котором хранится изображение или -1 если получаем снимок экрана |
|
|
Budni |
Отправлено: 02 Июня, 2019 - 14:02:52
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Zireael пишет: Цитата: а можно как то увеличивать, уменьшать скриншот?
Цитата: visualwindow(0, 200, 250, 300, 320, 10, 10 , 100, #Image_0[0][0]);
параметры:
1 - порядковый номер вывода изображения. от 0 до 1000.
2-5 - рамка захвата (клиентские координаты по указателю w)
6-7 - позиция вывода на экран изображения (экранные координаты)
8 - масштаб вывода
9 - указатель на окно или двухмерный массив int в котором хранится изображение или -1 если получаем снимок экрана
Имею в виду как в инструменте быстрого создания схем?
(Добавление)
И ещё окно мерцает сильно при запуске в игре, можно это как то исправить? |
|
|
|