Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-86887
Grrey
2003-01-16 10:52
2003.01.27
MDIChild в DLL


6-86990
kalishenko stas
2002-11-28 14:19
2003.01.27
Sockets и Internet


1-86864
bobby
2003-01-19 23:24
2003.01.27
z-последовательность в align


1-86730
diks
2003-01-15 21:03
2003.01.27
Копирование


1-86859
diks
2003-01-19 21:54
2003.01.27
Обновление





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский