Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028

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

19.09.2014, 12:41. Показов 4637. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
1. Программно отключить монитор - выполнено:
C++
1
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
2. Исключить включение монитора от (случайного) движения мыши.
Нашел решение, которое меня, в принципе, устраивает:
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
// Для блокировки клавиатуры и мыши напишите следующий  код:
 
    HINSTANCE hDll;
    //ниже прототип будущей  функции
    DWORD __stdcall (*BlockInput)(bool Status);
    DWORD  Result;
    Memo1->Lines->Add("");
    Memo1->Lines->Add("Загрузка  функции BlockInput()...");
        hDll =  LoadLibrary("User32.dll");
        Memo1->Lines->Add("hDll = " +  IntToHex(int(hDll), 8));
        BlockInput = (DWORD __stdcall (*)(bool  Status))GetProcAddress(hDll,
        "BlockInput");
    Memo1->Lines->Add("BlockInput  = " + IntToHex(int(BlockInput),  8));
    if(!BlockInput)
    {
        Memo1->Lines->Add("Ошибка!!!");
        FreeLibrary(hDll);
        return;
    }
    Memo1->Lines->Add("Выполняем  BlockInput(true)...");
    Result =  BlockInput(true);
    Memo1->Lines->Add("Result = " +  IntToStr(Result));
    if(Result)
    {
        Memo1->Lines->Add("Теперь  клиатура и мышь доступны только, если нажать  CTRL+ALT+DEL");
        Memo1->Lines->Add("Ждем 15  сек...");
        Sleep(15000);
    }
    else  Memo1->Lines->Add("Ошибка!!!");
    Memo1->Lines->Add("Восстанавливаем  все как  было...");
    BlockInput(false);
    FreeLibrary(hDll);
    Memo1->Lines->Add("Готово.");
Но, блокировка длится только пока работает Sleep // 28 строка.
Увеличил время сна, теперь всё хорошо, монитор включается по трём клавишам, но программа остается висеть в процессах.
Как победить?

Добавлено через 9 минут
Прошу пардона, не уточнил, нужно сделать консольное приложение, без всяких окон, потом повешу на горячую клавишу.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2014, 12:41
Ответы с готовыми решениями:

Как программно отключить aero (для енергосбережения)?
Кто сталкивался с отключениием aero в windows? Кто сталкивался, подскажите! Приветствуются также мысли по поводу как увеличить работу...

Отключить программно системные звуки
Здравствуйте! Подскажите пожалуйста как мне отключить программно системные звуки ?

Программно отключить функцию Windows 7
Доброго времени суток, подскажите как программно с помощью билдера отключить функции Windows 7 такие как "Выключение компьютера"...

7
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
19.09.2014, 13:50
Можно отключить вместе с клавиатурой BlockInput(true)
http://msdn.microsoft.com/en-u... 85%29.aspx
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
19.09.2014, 15:11  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Можно отключить вместе с клавиатурой BlockInput(true)
Так я это и делаю
Цитата Сообщение от +1 Посмотреть сообщение
21 Result = BlockInput(true);
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
19.09.2014, 15:22
А нафига явно подгружать?
Достаточно хедер подключить.
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
19.09.2014, 15:42  [ТС]
Это уже мелочи. Как Sleep заменить?
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
10.10.2014, 12:31  [ТС]
Вобщем, сделал два процесса — один лочит систему, выключает монитор и мышь, короче, делает всю основную работу
C++
1
2
3
4
BlockInput(true);
LockWorkStation();
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
Sleep(2592000000);
Второй запускает его и убивает после оживления и движения мыши по форме.
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
STARTUPINFO si;
PROCESS_INFORMATION pi;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
CreateProcess(NULL, "Off_Monitor_Nigger.exe", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
TerminateProcess(pi.hProcess, 0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
Application->Terminate();
}
//---------------------------------------------------------------------------
0
10.10.2014, 20:58

Не по теме:

Фу какое некрасивое название экзешника...:-!

0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
10.10.2014, 21:09  [ТС]
Цитата Сообщение от +1 Посмотреть сообщение
Off_Monitor_Nigger.exe
Цитата Сообщение от +1 Посмотреть сообщение
делает всю основную работу
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.10.2014, 21:09
Помогаю со студенческими работами здесь

Программно отключить кнопки biMinimize
Как программно отключить у своей формы кнопки biMinimize, biMaximize и кнопку с крестиком, которая закрывает программу? О_о

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

Как отключить клавиатуру и мышь
Ктр-нибудь подскажите, как заблокировать клавиатуру и мышь. BlockInput не помог, он блокирует только в собственном окне.

Как отключить мышь через C#?
Здравствуйте! Нужно через C# полностью отключить мышь. Что бы ни водить ею нельзя было, ни кликать. Как это сделать? ...

Как отключить мышь в WebBrowser control?
Ребята, умоляю помогите... Вставил на форму WebBrowser control. Моя программка генерит HTML страницу и отображает его в WebBrowser. Но...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru