С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 23

Программное отключение мыши

16.06.2016, 14:27. Показов 1952. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может кто подкинет идею, как программно отключить мышь.

BlockInput не подходит, поскольку он блокирует и клаву. А она мне нужна для работы приложения.
Также не подходят решения, которые по таймеру перемещают курсор в левый верхний угол (видел где-то такой пример).

Есть ещё какие-то варианты?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.06.2016, 14:27
Ответы с готовыми решениями:

Прпограммное отключение мыши, как?
Как программно отключить мышь?

Программное отключение\включение ADSL
Здравствуйте, есть ли у кого соображение по поводу, как программно отключить\включить ADSL интернет?

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

11
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
16.06.2016, 15:03
Если это в пределах твоего приложения, тогда бросить компонент ApplicationEvents и в обработчике OnMessage блокировать все сообщения мыши.
0
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 23
16.06.2016, 15:04  [ТС]
Тоже к сожалению не подходит. Нужно контролировать весь рабочий стол. Приложение имитирует перемещение курсора и клики. Но если при этом случайно задеть мышь, то всё сбивается. Нужно на время работы главного цикла отлючить мышь. А после выполнения снова отдать управление юзеру.
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
16.06.2016, 15:20
Тогда ставить глобальный хук на мышь.
Сейчас пороюсь, что-то когда-то делал такое

Добавлено через 7 минут
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
HHOOK hMouseHook = 0;
 
// ---------------------------------------------------------------------------
int __stdcall MouseProc(int nCode, DWORD wParam, DWORD lParam) // Блокировка мыши
{
    return 777;
}
 
//---------------------------------------------------------------------------
void __fastcall TForm2::FormCreate(TObject *Sender) {
    hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, (HOOKPROC) & MouseProc, GetModuleHandle(NULL), 0);
    if (hMouseHook) {
        this->Caption = "Mouse hook installed";
    }
}
 
//---------------------------------------------------------------------------
void __fastcall TForm2::FormDestroy(TObject *Sender) {
    if (hMouseHook && UnhookWindowsHookEx(hMouseHook)) {
        // Log("Mouse hook was successfully removed!");
    }
    else {
        // Log("Can not release mouse hook!");
    }
}
П.С. Проверял на CBuilder 2010 Win 7, за другие среды и операционки не отвечаю
3
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
16.06.2016, 15:21
Цитата Сообщение от Maluda Посмотреть сообщение
Сейчас пороюсь, что-то когда-то делал такое
Буду вам очень признателен
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
16.06.2016, 15:23
Просьба для всех только в вирусне это не использовать и пакости не делать
0
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 23
16.06.2016, 15:45  [ТС]
Супер! Отличное решение.

PS. Не переживай, у меня приложение полезное. Автоматизирует действия для одной очень древней самописанной системы учёта в нашей фирме. Там +100500 кпопок, а реально нужно использовать только несколько. Пока по всем накликаешь, с ума сойти можно. На новый софт денег у шефа как всегда нету, а автоматизации хочется. Вот меня и посадили написать к нему маленькую утилиту, которая облегчит ввод данных )) Но наши тётки не могут понять, что при этом нельзя играть в косынку. Вот и нужно блокировать им мышь на время заполнения всех форм.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
16.06.2016, 15:56
Цитата Сообщение от todayz Посмотреть сообщение
PS. Не переживай, у меня приложение полезное. Автоматизирует действия для одной очень древней самописанной системы учёта в нашей фирме. Там +100500 кпопок, а реально нужно использовать только несколько. Пока по всем накликаешь, с ума сойти можно. На новый софт денег у шефа как всегда нету, а автоматизации хочется. Вот меня и посадили написать к нему маленькую утилиту, которая облегчит ввод данных )) Но наши тётки не могут понять, что при этом нельзя играть в косынку. Вот и нужно блокировать им мышь на время заполнения всех форм.
Так они вообще мышью не смогут пользоваться )))) будут ощущать себя калеками...
0
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 23
16.06.2016, 16:04  [ТС]
Так они вообще мышью не смогут пользоваться )))) будут ощущать себя калеками...
Ага, я уже представляю как они будут за мной табуном бегать и кричать что они не могут нормально работать. Косынка блин не раскладывается )))

Добавлено через 6 минут
Вроде всё на первый взгляд было отлично, но после выполнения кода

SetCursorPos(100, 200);

Мышь снова разблокируется (((
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
16.06.2016, 17:05
Ну так обратно блокируйте
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
16.06.2016, 17:32
Цитата Сообщение от todayz Посмотреть сообщение
Мышь снова разблокируется (((
Проверил у себя
Цитата Сообщение от todayz Посмотреть сообщение
SetCursorPos(100, 200);
Мышь перемещается, но после этого находится в заблокированном состоянии.
Или тебе надо, чтобы она не реагировала на SetCursorPos?

мышь раз в секунду смещается, но пользователь не может на нее воздействовать,
она остаётся в заблокированном состоянии
C++
1
2
3
4
5
//---------------------------------------------------------------------------
void __fastcall TForm2::Timer1Timer(TObject *Sender) {
    static int iTest = 100, iTest2 = 100;
    SetCursorPos(iTest++, iTest2++);
}
0
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 23
16.06.2016, 19:13  [ТС]
Мышь перемещается, но после этого находится в заблокированном состоянии.
Или тебе надо, чтобы она не реагировала на SetCursorPos?
Это странно. У меня она заблокирована ровно до тех пор, пока не сработает SetCursorPos.

Нет, мне как раз нужно, чтобы она реагировала на SetCursorPos но физически мышкой нельзя было управлять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.06.2016, 19:13
Помогаю со студенческими работами здесь

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

Отключение дисплея (программное)
Кто подскажет как отключить дисплей, а при нажатии любой кнопки или мыши, даже движении, затем монитор включался!? p.s. Естественно...

Программное отключение функции
Добрый день! В книге EXCEL есть пользовательская функция: Function HasFormula(C As Range) As Boolean HasFormula = C.HasFormula End...

Программное отключение интернета
Всем привет, интересует такой вопрос: Можно кликами мышки выключать интернет в "Центре ...", в настройках адаптера кнопка...

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru