Форум: "Система";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Вниз
Блокировка компьтера Найти похожие ветки
← →
opoloXAI (2002-11-07 15:53) [0]Добрый день.
Помогите написать код.
Мне нужно, чтобы моя прога была невидима по Ctr+Alt+Del при запуске и работе, а через определённое время блокировала компьютер до прихода сигнала с ComPort-а.
Спрятать прогу по Ctr+Alt+Del я могу, получить сигнал с порта тоже.
Вопрос: но как заблокировать комп до прихода нужного сообщения - я не знаю.
Я искал по сайту(долго), но не нашёл (скорее всего плохо искал).
Если кто напишет, буду примного благодарен.
← →
ZZ (2002-11-07 18:51) [1]А заблокировать - это как выглядит?
← →
opoloXAI (2002-11-07 20:01) [2]не обрабатывать клавиатуру и мышь (ну хотя-бы клавиатуру)
← →
xyz (2002-11-07 22:34) [3]а можно форму на весь экран и...
обрабатывать онкейпресс...
тогда и распальцовку не надо блокировать....
← →
SeB (2002-11-08 10:06) [4]Код для Builder:
// Объявляем указатель на функцию
void (__stdcall *pBlockInput) (bool);
HINSTANCE hInstUser;
hInstUser = LoadLibrary ("USER32.DLL"); // Загружаем библиотеку
if (hInstUser) {
// Присваеваем указателю адрес функции
pBlockInput = (void (__stdcall *) (bool))GetProcAddress(hInstUser, "BlockInput");
// Бибилотека нам больше не нужна, освобождаем память
FreeLibrary (hInstUser);
}
Блокировка:
pBlockInput(true);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, NULL, 0); //block CtlAltDel
Разблокирование:
pBlockInput(false);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, NULL, 0);
// разблокировать Ctrl-Alt-Del, Alt-Tab, Ctrl-Enter
По NT/XP SystemParametersInfo не действует, и после нажатия CAD блокировка снимается, можно блокировать, например, по таймеру, каждые 2 секунды. Для данного способа количество вызовов функции блокировки не обязательно должно быть равно количеству вызовов функции разблокировки, т.е. можно 100 раз заблокировать, потом 1
раз разблокировать и все будет ОК.
← →
3223(jab) (2002-11-12 00:28) [5]Гдето в FAQ :) я читал о том, что можно программно отключать монитор! :) После такого ничего не придётся блокировать! :)
← →
Marser (2002-11-12 23:05) [6]to 3223(jab)
Причем очень легко:
uses mask;
...
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
SLEEP(5000);
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
...
// В данном случае на 5 секунд.
← →
Manulo (2002-11-13 17:17) [7]
> Marser ©
> SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER,
> 0);
Тока не 0, а 1 ;)
← →
DVM (2002-11-14 12:55) [8]Вы обратно монитор включать, выключенный таким образом пробовали, у меня не включается.
← →
Song (2002-11-14 13:07) [9]Какая ОС?
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.101 c