Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
14-87124
Оливейра
2003-01-09 20:54
2003.01.27
Как же конструируется и инициализируется объект в Object Pascal


4-87222
Alinka
2002-12-10 11:28
2003.01.27
второй экземпляр программы не запускался


14-87030
kronprince
2003-01-10 20:17
2003.01.27
Копаясь в примерах нашел такой кусок кода.


4-87180
alex134
2002-12-09 22:18
2003.01.27
Глобальный контроль


1-86839
error 2k
2003-01-18 23:32
2003.01.27
Пауза в программе




   Наверх