Zireael |
Отправлено: 16 Сентября, 2018 - 02:29:19
|
Эксперт
Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как сделать проверку Зажатия клавиши
И как это связано с 'Вывод нужных изображений...'. Задавайте вопросы в соответствующих темах или создавайте новые.
Цитата: Задача:
Клавиша зажата - выполняется какой то код (в идеале, что бы не циклично, а именно 1 раз).
Как только она отжимается, прекращается.
code (Отобразить)CODE:int code_button=192; // код клавиши, 192 это Ё
int time=500; // на сколько мсек требуется зажать клавишу чтобы она считалась зажатой
int t;
loop()
{
t=gettime()+time; // текущее время + time
while(gettime()<t && getkeystate(code_button)==1)sleep(10); // пока не вышло время и клавиша нажата
if(gettime()>=t) // если прошло указанное количество мсек
{
messagebox("Какое-то действие"); // выполнится 1 раз
while(getkeystate(code_button)==1)sleep(10); // пока клавиша не будет отпущена
}
sleep(1);
}
При зажатии клавиши Ё на 0.5 секунды будет сообщение. На нажатия реагировать не будет, только зажатие. Действие срабатывает однократно, потом надо снова зажимать клавишу. |
|
|
007wan |
Отправлено: 23 Февраля, 2019 - 11:27:02
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Я не понимаю. Я Установил прозрачность и окно стало порзрачнм, но указатель идет на окно visualwindow , где я могу делать действия(клик), но мне этого не надо, а нужно, что бы просто выводил изображение с мазилы и обновлял окно, т.е я могу делать клики в мазиле, но свернув браузер, показывало бы что делается там...
(Добавление)
CODE:external(INT, "InvalidateRect", "InvalidateRect", "user32.dll");
int x=0, y=0;
win w = window ("Mozilla Firefox");
visualwindow(0, 272, 83, 1331, 839, x, y, 100, w);
enabletimer(0);
loop()sleep(10);
CREATE_TIMER(0, 50)
{
if(getkeystate(192)==1)
{
getmouse(x, y);
InvalidateRect(0,0,1);
transparency (50, w);
visualwindow(0, 272, 83, 1331, 839, x, y, 100, w);
}
}
Что я делаю не так?(Отредактировано автором: 23 Февраля, 2019 - 11:35:19) |
|
|
Kibor |
Отправлено: 23 Февраля, 2019 - 12:12:54
|
Эксперт
Просматривает форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
007wan ,
CODE:win w=window (-1, "MozillaWindowClass", -1);
//Скрываем окно браузера с экрана
transparency (-1, w);
visualwindow(0, 20, 20, 500, 500, 10, 10, 100, w);
loop()
{
//Работа. клики и тд.
sendkey(F5, w);
pause(2000);
}
|
|
|
007wan |
Отправлено: 17 Марта, 2019 - 14:53:12
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Вообще без понятия, где подробности?
visualwindow(0, 200, 250, 300, 320, 10, 10 , 100, w);
visualwindow(0, 200, 250, 300, 320, 10, 10 , 100, #Image_0[0][0]);
параметры:
1 - порядковый номер вывода изображения. от 0 до 1000.
2-5 - рамка захвата (клиентские координаты по указателю w)
Что я тут должен понять, где Х,Y координаты откуда брать изображение, а где ширина и высота???
6-7 - позиция вывода на экран изображения (экранные координаты)
8 - масштаб вывода
9 - указатель на окно или двухмерный массив int в котором хранится изображение или -1 если получаем снимок экрана |
|
|
|