Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463

Программный клик мыши

11.10.2017, 16:57. Показов 3118. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, такой вопрос. Можно ли кликать мышью сквозь формы? Т.е есть прозрачная активная форма, и кликать на объекты позади ней(например папку). Или как можно считать клик мыши, когда форма неактивна?
Т.е, есть таймер, который считывает координаты мыши когда форма неактивна
C++
1
2
3
4
5
TPoint cPt;
GetCursorPos(&cPt);
 my=int(cPt.y);
GetCursorPos(&cPt);
 mx=int(cPt.x);
А можно ли считать, когда произошёл клик? Нужно для того, чтобы запустить таймер с автокликом много раз, этакий автокликер
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2017, 16:57
Ответы с готовыми решениями:

Программный клик курсором
Всем доброго времени суток. Кто знает как програмно кликнуть курсором по заданный координатам, как переместить туда курсор я знаю а вот как...

Клик мыши, как сделать?
Нужна просто команда или функция которая бы кликалы мыш в часть экрана где она установлена. Можно ли это сделать? В Интернете нашел...

Обработать клик мыши по ячейке StringGrid с изображением
Хочу сделать игру, суть такая: есть stringgrid 15х15. В каждой ячейке картинка. Есть 2 варианта картинок, например :1-голова, 2 -нога....

4
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
11.10.2017, 20:54
Лучший ответ Сообщение было отмечено Александр321321 как решение

Решение

Цитата Сообщение от Александр321321 Посмотреть сообщение
А можно ли считать, когда произошёл клик?
Проверяй условие (например, в том же таймере)
C++
1
  if (GetKeyState(VK_LBUTTON) & 0x8000)
Вместо GetKeyState можешь попробовать использовать GetAsyncKeyState
1
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
12.10.2017, 13:09
Цитата Сообщение от Александр321321 Посмотреть сообщение
А можно ли считать, когда произошёл клик
Поставь хук на события мыши.
0
55 / 18 / 19
Регистрация: 11.11.2014
Сообщений: 463
13.10.2017, 18:33  [ТС]
Спасибо очень помогли. На данную статью много прочёл. Но как отследить именно период нажатия или отпускания клавиши?
Если зажать клавишу, то будет много кликов в одно место, а надо 1, даже если клавиша зажата
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
13.10.2017, 20:15
кинь на форму TMemo и попробуй этот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
HHOOK MouseHook = 0;
LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    MouseHook = SetWindowsHookEx(WH_MOUSE_LL, (HOOKPROC)MouseProc,  GetModuleHandle(NULL), 0);
}
//---------------------------------------------------------------------------
LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam)
{
    if (code != HC_ACTION)
        return CallNextHookEx(MouseHook, code, wParam, lParam);
 
    tagMSLLHOOKSTRUCT* mshs = (tagMSLLHOOKSTRUCT*)lParam;
 
    if (wParam == WM_LBUTTONDOWN)
        Form1->Memo1->Lines->Add(L"нажатие LMB");
    else if (wParam == WM_LBUTTONUP)
        Form1->Memo1->Lines->Add(L"отпускание LMB");
    else if (wParam == WM_RBUTTONDOWN)
        Form1->Memo1->Lines->Add(L"нажатие RMB");
    else if (wParam == WM_RBUTTONUP)
        Form1->Memo1->Lines->Add(L"отпускание RMB");
    else if (wParam == WM_MBUTTONDOWN)
        Form1->Memo1->Lines->Add(L"нажатие MMB");
    else if (wParam == WM_MBUTTONUP)
        Form1->Memo1->Lines->Add(L"отпускание MMB");
    else if (wParam == WM_MOUSEWHEEL)
    {
        if (int(mshs->mouseData) >= 0)
            Form1->Memo1->Lines->Add(L"прокрутка вверх");
        else
            Form1->Memo1->Lines->Add(L"прокрутка вниз");
    }
    return CallNextHookEx(MouseHook, code, wParam, lParam);
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.10.2017, 20:15
Помогаю со студенческими работами здесь

Реализовать движение мыши по какой-нибудь траектории, и в конце ее - клик левой кнопкой
Здравствуйте. Подскажите как реализовать движение мыши по какой-нибудь траектории и в конце вызвать клик левой клавишей. Например: по...

Клик мыши в неактивном окне
Открыто окно Opera, свёрнут Google Chrome Мы запускаем программу, которая должна кликнуть по координатам x, y в свёрнутом окне Google...

Chart как показывать координаты мыши по графику возле курсора мыши!
Chart как показывать координаты мыши по графику возле курсора мыши! Когда двигаешь мышкой по графику координаты обновлялись!

Вывести поточные координаты курсора мыши относительно формы и экрана, при нажатии на кнопку-реверсное изменение кнопок мыши C++
доброй ночи, уважаемые программисты, умные школьники, преуспевающие студенты, а также все участники этого форума. помогите, пожалуйста,...

Программный клик мыши
Как сделать так, чтобы программа кликнула мышкой? Пример: нажима готово в проге, она передвигает курсор на эту же кнопку и программа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru