Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Блокировка и разблокировка мыши [D5, Win95/98, WinME]


Страницы:   1 2

Serg2 ©   (2001-09-20 11:44:00) 

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


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

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


Polygon   (2002-02-17 17:58:00) [2]

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


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

выполнять через банальный 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 12:44:00) [4]

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


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

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


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

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


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

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


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

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


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

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

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


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

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


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

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


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

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


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

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


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

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


FFFF   (2001-12-24 12:40:00) [15]

lpdiDevice->SetCooperativeLevel(hwnd,DISCL_EXCLUSIVE | DISCL_FOREGROUND )



FFFF   (2001-12-24 12:38:00) [16]

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


Snake2000   (2001-12-24 12:27:00) [17]

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


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

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


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

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


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

uses windows;

var
a: boolean;
begin

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо