Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
23 / 15 / 0
Регистрация: 16.11.2009
Сообщений: 332
1

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

27.01.2010, 17:25. Показов 4381. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как программно отключить мышь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2010, 17:25
Ответы с готовыми решениями:

Программное отключение мыши
Может кто подкинет идею, как программно отключить мышь. BlockInput не подходит, поскольку он...

Отключение мыши
hi2all! ) Ребята, подскажите плиз можно ли на время анимации (работает скрипт JQ, перемещает...

Отключение мыши
Мне интересно, как реализовать такую задачу. При нажатии кнопки мыши (onmousedown) у курсора...

отключение мыши
подскажите, как реализовать на тасм

5
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
27.01.2010, 17:55 2
Обязательно средствами С++?
Можно создать батник:

@echo off
rundll32 mouse,disable

И запустить его прогой своей
0
23 / 15 / 0
Регистрация: 16.11.2009
Сообщений: 332
27.01.2010, 17:58  [ТС] 3
Обязательно на С++
0
172 / 96 / 12
Регистрация: 29.05.2009
Сообщений: 341
27.01.2010, 18:11 4
Вот эт может поможет:
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
// Для блокировки клавиатуры и мыши напишите следующий  код:
void __fastcall TForm1::Button1Click(TObject  *Sender)
{
    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("Готово.");
}
0
23 / 15 / 0
Регистрация: 16.11.2009
Сообщений: 332
27.01.2010, 18:39  [ТС] 5
Спасибо

Добавлено через 18 минут
Но этот код отключает и клавиатуру тоже, а мне надо только мышь
0
1702 / 898 / 207
Регистрация: 25.11.2009
Сообщений: 1,847
28.01.2010, 23:37 6
Может подойдёт блокировка перемещения курсора?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <vcl.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
RECT LR;
LR.left=100;
LR.top=100;
LR.right=500;
LR.bottom=500;
ClipCursor(&LR);// Îãðàíè÷èâàåì â çàäàíîé îáëàñòè
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ClipCursor(NULL);// Ðàçáëîêèðîâàòü        
}
Только здесь Right не плюсуется к Left, а тоже считается от левого края формы, т. е. должно быть >=Left. Аналогично и с высотой.

Блокировка снимается при сворачивании приложения, или если активным становится другое окно

а вот более краткий пример использования функции BlockInput, про которую писал Falen:
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
#include <vcl.h>
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HINSTANCE hDll;
DWORD __stdcall (*BlockInput)(bool Status);
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
hDll = LoadLibrary("User32.dll");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
BlockInput = (DWORD __stdcall (*)(bool Status))GetProcAddress(hDll,"BlockInput");
BlockInput(true);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
BlockInput(false);
FreeLibrary(hDll);
}
1
28.01.2010, 23:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2010, 23:37
Помогаю со студенческими работами здесь

ShellExecute: отключение мыши
Помогите, плиз! У меня задание - отключить мышь через shellexecute, на просторах форума нашла...

Отключение мыши и клавиатуры
Здравствуйте! Вчера (20 января 2020 года) при игре у меня резко отключились мышь с клавиатурой....

Отключение клавы-мыши
Здравствуйте Я довольно продвинутый пользователь, но тут я честно подгораю Суть проблемы...

Отключение курсора мыши
Я разрабатываю приложение. В качестве вывода я использую консоль Windows, которая раскрывается без...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru