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

Вниз

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

 
MaximCHR   (2003-10-31 15:58) [0]

Пишу локер,при появление окна с вводом пароля нужно чтоб заблокировались все клавиши и сочетания клавиш которые могли бы закрыть или обойти приложение,и чтоб курсор мыши находился только в этом окне ,как это лучше сделать дайте совет ,если можно и примерчик


 
TUser   (2003-10-31 16:05) [1]

Когда окошко теряет фокус, ОС посулает ему соотв. сообщение. Надо его перехватить и написать SetFocus. Наверное, так.


 
Alik   (2003-10-31 18:11) [2]

Вот так сто пудово все отрубает, но только из-под 9x, Me.

Uses Shellapi;

"rundll32 keyboard,disable" - Вырубить Клавиатуру.
"rundll32 mouse,disable" - Вырубить Мышь.

Можно использовать из приложения Дельфи с помощью следующей конструкции:
ShellExecute(Application.Handle,
Pchar("Open"),Pchar("C:\Windows\Rundll32.exe"),
Pchar(команда),
Pchar("C:\Windows"),SW_SHOWNORMAL);
где: команда - одна из перечисленных ниже
Например, выход из Windows без любых сообщений/вопросов:

ShellExecute(Application.Handle,

Pchar("Open"),Pchar("C:\Windows\Rundll32.exe"),

Pchar("krnl386.exe,exitkernel"),

Pchar("C:\Windows"),SW_SHOWNORMAL);


 
willys   (2003-11-01 04:31) [3]

> Alik (31.10.03 18:11) [2]
интересно, как пользователь будет вводить пароль с вырубленной клавиатурой :)


 
Gero   (2003-11-02 19:36) [4]

Вообще-то, делать нечто подобное - дурной тон.


 
Cash   (2003-11-15 01:30) [5]

Да я сам пишу подобную вещь, от всего избавился, окромя двух клавиш, на которых Виндошная эмблема. да и понятно. Все остальное - сочитания клавишь, убрать можно отменив одну из клавиш этого сочитания. У меня это так:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
keybd_event( VK_CONTROL, $45, KEYEVENTF_KEYUP, 0); {Control}
keybd_event( VK_ESCAPE, $45, KEYEVENTF_KEYUP, 0); {Esc}
keybd_event( VK_MENU, $45, KEYEVENTF_KEYUP, 0); {Alt}
end;

Мышь фиксировать мне не надо, т.к. все действо в полноэкранном режиме, Для чего удачно применил DelphiX.


 
pasha_golub   (2003-11-15 11:43) [6]

Для отрубания Виндовых клавиш в ХР надо юзать хук и не иначе, ИМХО.

В 98 все просто, надо юзать SPI_SCREENSAVERRUNNING.

2Автор ветки
Юзай мой локер, чем он тебе не подходит?


 
MaximCHR   (2003-11-15 12:06) [7]

Чтож нашёл одно из решений,есть компонент в библиотеке JVCL,там вроде можно сделать подобное,


 
Cash   (2003-11-16 00:07) [8]

pasha_golub : Дай ка поподробнее про Хук под XP.


 
MaximCHR   (2003-11-16 16:36) [9]

2pasha golub:Да я к локеру ещё одну вещицу прикрутил- таймер,а то у меня братишка в моё отсутствие слишком много за компом сидит,всё прописал а вот отловить Win и сочетания её,оловить не могу......


 
pasha_golub   (2003-11-17 11:44) [10]

2Cash
Ваще-то инфы очень много, стптьи есть на этом сайте. Но если именно по этой теме, то по-моему www.torry.net раздел Hints, там есть даже пример хука на клавиатуру.

2MaximCHR
Смотри совет про торри.нет


 
Cash   (2003-11-17 18:46) [11]

pasha_golub: Ok. посмотрю.


 
agentru   (2003-12-01 22:16) [12]

Кстати какие компоненты существуют для этого?



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

Форум: "Система";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-53609
Бомбома
2004-02-07 12:45
2004.02.17
arccos


6-53682
Бэтман
2003-12-15 16:29
2004.02.17
Список компьютеров в локалке


1-53591
Genry
2004-02-06 21:31
2004.02.17
Как правильно присвоить PChar переменной String


8-53664
Аноним
2003-10-17 08:24
2004.02.17
Работа с графикой


14-53708
Ig
2004-01-27 22:50
2004.02.17
Prince Of Persia : The Sands of Time





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский