-240 / 0 / 0
Регистрация: 18.01.2021
Сообщений: 30
|
|
1 | |
Клик по заданным координатам без перемещения курсора14.02.2021, 04:38. Показов 3011. Ответов 27
Метки нет (Все метки)
Здравствуйте...
Можно ли как-то сделать, чтобы мышью кликало по координатам, но не трогало оригинальный курсор? Чтобы я мог управлять курсором и так же кликать где захочу, но в это время ещё программа выполняла действия, не мешая мне. Как сделать, чтобы при появлении определённого цвета в определённом пикселе - выполнялось действие, допустим клик мыши?
0
|
14.02.2021, 04:38 | |
Ответы с готовыми решениями:
27
Клик мышью без перемещения курсора Клик мышью по заданным координатам Клик мышью по координатам без SetCursorPos клик по координатам |
-240 / 0 / 0
Регистрация: 18.01.2021
Сообщений: 30
|
|
14.02.2021, 22:13 [ТС] | 3 |
0
|
15.02.2021, 09:47 | 4 | ||||||||||
Сначала был один пиксель, теперь их несколько?
Для определения цвета пикселя есть функция GetPixel. Вот так:
0
|
-240 / 0 / 0
Регистрация: 18.01.2021
Сообщений: 30
|
|
16.02.2021, 00:21 [ТС] | 5 |
Окей...
Пиксель* экрана. Извиняюсь за свою тупость, я не программист, по этому я не понял как именно работает этот код... Мне надо, чтобы при появлении определенного цвета пикселя на экране - выполнялась команда Распишите, пожалуйста, куда надо вписывать координаты отслеживаемого пикселя, куда надо вставлять КОД цвета и куда надо вписывать выполняемую команду, при появлении нужного цвета пикселя Ещё, можете подсказать, как выполнить эту команду по нажатию кнопки из VB6: Код
wmic Path win32_process Where "Caption Like 'steam.exe'" Call Terminate Но мне надо чтобы именно в коде была эта команда, не по пути к .bat файлу с этой командой, а именно в коде (Я находил в интернете только выполнение по пути к .bat файлу) Please
0
|
16.02.2021, 10:57 | 6 | |||||
В строке №9 получаем контекст устройства рабочего стола, т.е. экрана монитора.
Строку №13 надо заменить на:
В строке №14 выводим RGB значение этого цвета. Т.к. вы не указали какой именно пиксел вас интересует и какой цвет вам нужен, то этот набросок кода вам должен помочь.
0
|
16.02.2021, 11:25 | 8 |
Вчера попробовал ставить точки в PictureBox, рисовать в нём линию и делать Refresh. События Picture_Change и Paint при этом не возникли. Какие события возникают в процессе работы других программ или ОС при изменении цвета абстрактных пикселей, подозреваю, определить будет очень сложно. Поэтому, надо использовать таймер. Он, в свою очередь, будет мешать, т.к. будет использовать ресурсы системы и не факт, что проверка события его срабатывания, всегда будет точно определять изменение цвета. Т.е. будут пропуски.
0
|
17.02.2021, 07:07 | 12 |
для чего тут вообще нужен второй курсор?
Задача стоит такая: Т.е у нас есть определённые координаты на экране, и в этих координатах цвет меняется. Вот при смене цвета нужен на этом месте клик, но сделать его надо так, чтобы он не мешал работе мышиного курсора.
0
|
help
4250 / 3843 / 781
Регистрация: 13.04.2015
Сообщений: 8,521
|
|
17.02.2021, 08:56 | 13 |
Я делал так: запоминал текущее положение указателя мыши, затем кликал в нужное место и возвращал указатель на место. Это происходит настолько быстро, что пользователь даже не замечает.
0
|
17.02.2021, 09:58 | 14 |
Но и такая:
ТС не указал "определённых координат". Я сделал второй управляемый курсор, не мешающий действиям системного. Что понимает под словом "клик" ТС пока не известно. Если сменить вид курсора, то это одно, а, если выполнить какие-либо действия, то совсем другое. Буду подождать уточнения задачи.
0
|
17.02.2021, 10:31 | 16 |
VB написан так же, как ОС. Всё работает по событиям. Обычная программа, написанная на любом ЯП представляет из себя окно с размещёнными на нём контролам. И мы кликаем не по пикселям, а именно по контролам. При клике мы наблюдаем визуальные эффекты: "утопление" кнопки, выделение цветом пунктов TexBox, ComboBox или других. Если мы следим за какой-либо программой, то надо получить имя окна и ID процесса. Если ожидаемые события посылают сообщения ОС, можно их перехватить. Я не знаю, передаёт ли клик мыши в какой-либо программе сообщение ОС или нет.
У изменения цвета пикселя события нет. Если даже, как вы предполагаете, слежение за игрой, то в любом случае будет прямоугольник, пиксели которого будут менять свой цвет. В простейшем случае можно обойтись из без применения функции GDI. Достаточно сделать прозрачную форму на весь экран и следить за изменениям цвета пикселя стандартными средствами VB. Я же написал кучу кода с индикацией, чтобы видеть и координаты и цвет, на которые они указывают. Если бы ТС сказал, что ему надо отслеживать изменения цвета пикселя, находящегося по координатам X, Y и при его изменении производить выполнение определённой операции, не меняя положения системного курсора, то задача так же упростилась бы. А пока мы работаем экстрасенсами "без диплома".
0
|
17.02.2021, 10:49 | 17 |
Ну да. Логика кликера в нашем случае основана на событиях таймера.
Скажем раз в 100мс проверять цвет экрана в определённом месте экрана, и если цвет совпадает с нужным, то кликнуть в этом месте мышкой. Если следим за несколькими местами экрана, то значит несколько проверок. Всё это легко реализовать. Но тема называется "Клик по заданным координатам без перемещения курсора". Вот это как раз и невозможно(или я не знаю, что так возможно). Как верно подметил I can, можно очень быстро переместить курсор в нужные координаты, кликнуть и быстро вернуть обратно. Для юзера будет практически незаметно. Но технически всё же это не так. И второй момент, если после клика цвет в этой точке не изменится, то клики будут происходить постоянно, а если скорость обработки будет высокая, то нормальная работа программы может быть нарушена - курсор вечно будет прыгать.
0
|
17.02.2021, 11:06 | 18 |
Программно кликнуть, как я понимаю, послать сообщение системе о том, что мы кликнули. Если так, то какое именно сообщение надо послать? И перемещать курсор не надо. Надо подменить его координаты.
0
|
Модератор
|
|
17.02.2021, 12:12 | 20 |
Нужно смотреть как работает приложение, возможно достаточно просто отправить нужное сообщение (по типу WM_LBUTTONDOWN).
0
|
17.02.2021, 12:12 | |
17.02.2021, 12:12 | |
Помогаю со студенческими работами здесь
20
Клик в программе по координатам Клик мышью по координатам Отслеживание перемещения курсора Перемещения курсора мыши Алгоритм перемещения курсора Мониторинг перемещения курсора по x y Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |