Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.27;
Скачать: CL | DM;

Вниз

Блокировка компьтера   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.121 c
1-86760
msgipss
2003-01-17 15:17
2003.01.27
Пример написания сервиса WinNT


1-86744
jiura
2003-01-17 14:24
2003.01.27
ЗАпись


14-87035
Феликс
2003-01-03 21:40
2003.01.27
---|Ветка была без названия|---


4-87186
sen
2002-12-10 11:09
2003.01.27
закрытие приложения


3-86633
Иксик
2003-01-10 13:48
2003.01.27
Чувствительность к регистру в