Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.16;
Скачать: CL | DM;

Вниз

Блокировка и разблокировка мыши   Найти похожие ветки 

 
Serg2   (2001-09-20 11:44) [0]

Всем здравствуйте.
Есть такой вопрос как впрограмме сидящей в трее заблокировать мышь в системе а по каколмуто условию разблокировать.
Я втречпл через функции rundll32 но толька блокировка а как разблокировать?
С уважением Serg2


 
DarkUser   (2001-09-20 16:07) [1]

Хмм... ( робко так ) а если попробовать хватать все сообщения от мыша захватами (Hook) а потом ни кому не отдовать.
...вдруг поможет


 
Polevi   (2001-09-20 16:43) [2]

Mouse.Active:=false


 
aus   (2001-09-21 13:26) [3]

А еще хороший метод Computer.Enabled := false.
>Polevi
Добавь в свою библиотеку.
:)


 
This is Knight   (2001-09-21 16:47) [4]

Было же уже шде-то на Ассемблере!!!


 
AlkoCola   (2001-09-22 13:51) [5]

Пиши на мыло, дам исходник


 
AlkoCola   (2001-09-22 13:52) [6]

Пиши на мыло, дам исходник


 
Olgerd   (2001-09-23 02:34) [7]

Например, ClipCursor(0,0,0,0) - там немного не так, но идея, я думаю ясна.


 
Саша   (2001-09-23 23:52) [8]

Пиши на мыло... Дам исходник.


 
docent   (2001-12-19 15:18) [9]

например вот так
int ShowCursor(
BOOL bShow // cursor visibility flag
);




 
Victor   (2001-12-21 05:51) [10]

Можно просто заблокировать её (мышь) в определённом месте для этого пишем на таймер SetCursorPos(100,100);


 
Delphimun   (2001-12-21 17:01) [11]

uses windows;

var
a: boolean;
begin

repeat
setcursorpos(1000,1000);
until a;
end.
Можно и по таймеру.



 
Xpdeveloper   (2001-12-22 07:17) [12]

все подумали как отключить мышь
теперь - как ее из трэя включить?
Короче, в жизни так мало радости, что надо курсоры отключать.
Лучше его скрыть и все, зачем юзверя до мокрых штанов доводить?
Тут начитаешься - кому надо экран затемнить, кому курсор замочить.
Враги.



 
Milz   (2001-12-24 10:09) [13]

Согласен. По-моему единственный выход поставить глобальный хук, который будет блокировать события от мыши для всех процессов/окон кроме некоторых системных (того-же трея) и своей программы. Примеров много.


 
Snake2000   (2001-12-24 12:27) [14]

Все гораздо порще..... Для начала берутся ножницы...


 
FFFF   (2001-12-24 12:38) [15]

Можно попробовать через DirectInput


 
FFFF   (2001-12-24 12:40) [16]

lpdiDevice->SetCooperativeLevel(hwnd,DISCL_EXCLUSIVE | DISCL_FOREGROUND )




 
yar   (2002-02-07 13:56) [17]

не помню вот как я делал в win9x, а под nt/2000 - BlockInput(что-то там).
подробнее см. msdn


 
BlankAlex   (2002-02-07 14:06) [18]

сходи на http://www.delphibest.narod.ru/pakosty.html


 
Zmey   (2002-02-08 18:16) [19]

можно через BlockInput(enable:boolean)
а можно и через rundll disablemouse или что - то вроде того


 
Tosov   (2002-02-10 17:45) [20]

Zmey
Читай вопрос:
> Я втречпл через функции rundll32 но толька блокировка а как разблокировать?
А как разблокировать то?


 
Pat   (2002-02-10 19:00) [21]

>А как разблокировать то?
Да никак!!! Rundll только блокирует мышь и клаву, поможет только перезагрузка....


 
Pat   (2002-02-10 19:50) [22]

Что-то ни один толковый ответ не видел...
Блокирует клаву и мышь, снимается при C+A+D, но это уже совсем другая история :-))

procedure BlockInput(a:boolean);stdcall; external "user32.dll";
.........
blockinput(true) - блокирует
blockinput(false) - разблокирует


 
Victor   (2002-02-11 08:29) [23]

SetCursorPos(1000,1000);
В таймере


 
Pat   (2002-02-11 18:49) [24]

>Victor
Кривее способа не видел....Вначале пробовать надо, а потом советовать...тем более повтор.


 
Polygon   (2002-02-16 21:33) [25]

BlockInput хорошая вещь. Но как быть если если нужно заблокировать мышь(и клаву) в проге используещей DInput? Все эти хуки и BloсkInput`s не работают в этом случае.


 
Pat   (2002-02-17 00:58) [26]

>Polygon
Написать свой драйвер :-))


 
Polygon   (2002-02-17 12:44) [27]

К сожелению DDK для меня пока сложен. А есть другой способ ?


 
[NIKEL]   (2002-02-17 13:32) [28]

выполнять через банальный winexec(Pchar("команда"),sw_Show);


"rundll32 keyboard,disable" - Заблокировать Клавиатуру
"rundll32 mouse,disable" - Запретить мышку
поменяй на enabled будет всё наоборот :)
и еще...
"rundll32 shell32,Control_RunDLL" - Запустить Панель Управления

"rundll32 shell32,OpenAs_RunDLL" - Открыть диалог "Открыть Как ..." ("Open With...")

"rundll32 shell32,ShellAboutA Info-Box" - Открыть "About Window Window"

"rundll32 shell32,Control_RunDLL desk.cpl" - Открыть диалог "Свойства: Экран" (Display Properties)

"rundll32 user,cascadechildwindows" - Выстроить все окна каскадно

"rundll32 user,tilechildwindows" - Свернуть все окна

"rundll32 user,repaintscreen" - Обновить Десктоп

"rundll32 shell,shellexecute Explorer" - Перезапустить Проводник


"rundll32 user,swapmousebutton" - Поменять кнопки мыши

"rundll32 user,setcursorpos" - Установить Курсор в позицию (0,0)

"rundll32 user,wnetconnectdialog" - Показать диалог "Подключить сетевой диск" ("Map Network Drive")

"rundll32 user,wnetdisconnectdialog" - Показать диалог "Отключить сетевой диск" ("Disconnect Network Disk")

"rundll32 user,disableoemlayer" - Отобразить окно BSOD ("""(BSOD) = Blue Screen Of Death """)

"rundll32 diskcopy,DiskCopyRunDll" - Показать диалог копирования диска

"rundll32 rnaui.dll,RnaWizard" - Запустить "Internet Connection Wizard"
"rundll32 shell32,SHFormatDrive" - Запустить окно форматирования дискеты ("Format Disk (A)")

"rundll32 shell32,SHExitWindowsEx -1" - "Холодный" перезапуск Проводника

"rundll32 shell32,SHExitWindowsEx 1" - Выключить компьютер

"rundll32 shell32,SHExitWindowsEx 0" - Завершить сеанс текущего пользователя

"rundll32 shell32,SHExitWindowsEx 2" Быстрый перезапуск Windows9x

"rundll32 krnl386.exe,exitkernel" - Выход из Windows 9x без потверждения

"rundll rnaui.dll,RnaDial "MyConnect" - Запустить диалог "Net Connection"

"rundll32 msprint2.dll,RUNDLL_PrintTestPage" - Выбор и печать тестовой страницы текущего принтера

"rundll32 user,setcaretblinktime" - Усатновить скорость мигания курсора

"rundll32 user, setdoubleclicktime" - Установить скорость двойного нажатия

"rundll32 sysdm.cpl,InstallDevice_Rundll" - Поиск устройств не PnP.


 
Polygon   (2002-02-17 17:58) [29]

To Nikel. Все это очень интересно но это все работает на уровне сообщений (т.е. блокирует сообщения, формируемые User32) с DInput это эффекта не принесет.
Поправте если не так: Железо(клава, мышь)>VXD>DInput.


 
Polygon   (2002-02-17 18:31) [30]

To All. Насколько я понял из DDK VXD как и DLL экспортирует функции. Можно ли обратиться к драйверу мыши и каким-то образом заблокировать ввод или (что еще лучше в случае с клавиатурой) фильтровать ввод



Страницы: 1 вся ветка

Текущий архив: 2002.05.16;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.017 c
3-49898
Вовка
2002-04-18 11:16
2002.05.16
тип данных Blob


14-50106
anod
2002-04-06 00:12
2002.05.16
Подскажите


3-49839
Александр Арсентьев
2002-04-18 10:01
2002.05.16
InterBase


3-49821
Slava_M
2002-04-18 08:09
2002.05.16
Установке свойства Table.Active из False в True


1-50019
[891rpm]
2002-04-30 22:46
2002.05.16
Компонент hex-view