![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка компьтера [D5, Win95/98]
opoloXAI © (2002-11-07 15:53:00)Добрый день.
Помогите написать код.
Мне нужно, чтобы моя прога была невидима по Ctr+Alt+Del при запуске и работе, а через определённое время блокировала компьютер до прихода сигнала с ComPort-а.
Спрятать прогу по Ctr+Alt+Del я могу, получить сигнал с порта тоже.
Вопрос:но как заблокировать комп до прихода нужного сообщения - я не знаю.
Я искал по сайту(долго), но не нашёл (скорее всего плохо искал).
Если кто напишет, буду примного благодарен.
Song (2002-11-14 13:07:00) [1]Какая ОС?
DVM (2002-11-14 12:55:00) [2]Вы обратно монитор включать, выключенный таким образом пробовали, у меня не включается.
Manulo (2002-11-13 17:17:00) [3]
> Marser ©
> SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER,
> 0);
Тока не 0, а 1 ;)
Marser (2002-11-12 23:05:00) [4]to 3223(jab)
Причем очень легко:
uses mask;
...
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
SLEEP(5000);
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
...
// В данном случае на 5 секунд.
3223(jab) (2002-11-12 00:28:00) [5]Гдето в FAQ :) я читал о том, что можно программно отключать монитор! :) После такого ничего не придётся блокировать! :)
SeB (2002-11-08 10:06:00) [6]Код для 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
раз разблокировать и все будет ОК.
xyz (2002-11-07 22:34:00) [7]а можно форму на весь экран и...
обрабатывать онкейпресс...
тогда и распальцовку не надо блокировать....
opoloXAI (2002-11-07 20:01:00) [8]не обрабатывать клавиатуру и мышь (ну хотя-бы клавиатуру)
ZZ (2002-11-07 18:51:00) [9]А заблокировать - это как выглядит?