Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.005 c
1-49912
Builder
2002-04-30 08:48
2002.05.16
Как заставить IExplorer обновиться?


3-49892
helenka
2002-04-20 21:36
2002.05.16
не могу связать таблицы


3-49843
kubik
2002-04-19 00:10
2002.05.16
хитрый SQL


14-50109
ZZ
2002-04-07 17:14
2002.05.16
Бета тестирование прог


1-49957
Demn
2002-04-29 06:01
2002.05.16
Как привязать MaskEdit к редактируемой ячейке в StringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский