Лидеры рейтинга

ID: 401284

Михаил Александров

Советник

381

Россия, Санкт-Петербург


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

376

Россия, пос. Теплоозёрск, ЕАО


ID: 401888

puporev

Профессор

216

Россия, Пермский край


ID: 400669

epimkin

Профессионал

112


ID: 405338

vovaromanov.jr

1-й класс

105


ID: 242862

Hunter7007

Мастер-Эксперт

30

Россия, Омск


ID: 137394

Megaloman

Мастер-Эксперт

26

Беларусь, Гомель


8.10.2

13.10.2021

JS: 2.10.2
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-10-27 13:46:02-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 159907

Раздел: Pascal / Delphi / Lazarus
Автор вопроса: Upgrader
Дата: 08.02.2009, 11:27 Консультация закрыта
Поступило ответов: 1

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

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

Ответ # 243267 от PavelGM
Здравствуйте, 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.



PavelGM

Посетитель
09.02.2009, 19:28
Мини-форум консультации # 159907
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

puporev

Профессор

Рейтинг: 216

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 163

Gluck

9-й класс

Рейтинг: 82

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0