Консультация № 159907
08.02.2009, 11:27
0.00 руб.
0 1 1
Здравствуйте! Подскажите, как надежно заблокировать компьютер своей программой? (delphi7) Чтобы пользователь ничего не смог сделать.
У меня во весь экран висит главное окно программы, но никто не мешает пользователю нажать например ctrl+alt+del или Win. Если от первого понятно как избавиться, то от второго - нет.
При этом ни клавиатура ни мышь не используются, т.е. заблокировать можно хорошо, так, чтобы ничего вообще нельзя было сделать кроме как смотреть на информацию выдаваемую программой. Через какое-то время она сама должна и разблокировать.

Вроде бы самый простой способ это отключить мышь и клавиатуру например вот так: (а как включить, написать enable?)
WinExec(PChar('rundll32 mouse,disable'), SW_SHOW);
WinExec(PChar('rundll32 keyboard,disable'), SW_SHOW);
Но это почему-то не работает. Windows пишет: "ошибка при загрузке mouse. Не найден указанный путь."

Обсуждение

Неизвестный
09.02.2009, 19:28
общий
это ответ
Здравствуйте, Upgrader!

Самый простой (из известных мне) способов - в user32.dll есть такая процедура BlockInput.

Procedure BlockInput(BlockIt : Boolean); external 'USER32.DLL';

P.S. Выдержка из MSDN: If this parameter is TRUE, keyboard and mouse input events are blocked. If this parameter is FALSE, keyboard and mouse events are unblocked. Note that only the thread that blocked input can successfully unblock input.


Форма ответа