Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2011, 17:40   #1
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию Блокировка клавы и мыши + заставка (Это не вирус !!!)

Пишу клиент-серверное приложение "Интернет кафе", пришел к тому, чтобы клиент блокировал клаву, мышь, ну и рюшкам, плюшкам, можно было бы и скрин с рекламой бросить на весь экран.

Полазив на просторах инета - нашел несколько способов.
Один из них - это работа с реестром, что мне очень и очень даже не понравилось. Клиент завис, - машина стала не доступна. (((

Есть еще один способ.

Код:
procedure BlockInput(ABlockInput: boolean); stdcall; external 'USER32.DLL';
  // Вызываем функцию из DLL'ки
Пример использования:
procedure TForm1.N1Click(Sender: TObject);
begin
  BlockInput(True);  // (для обратного исхода надо вместо True написать False)
end;
Это способо вродь решает проблему - после перезагрузки машины все вродь обновляется, но есть одно но. Хотелось бы еще сделать ввод комбинации клавиши, где запрашивает пароль - при введенном правильном пароле - клиент клави и мышь разблокируются.
Может кто уже подобное делал, подскажите. )))
Да и чтобы не плодить кучу тем, - есть еще один вопрос:
Хотелось бы сделать во время блокировки еще скрин на весь экран, например в заведомо нужной нам папке лежат файлики(рисунки), по очередно вытягиваем файлы, либо подгружаем все файлы в нужной папке и по-очередно их пролистываем.

Всем благодарю за помощь!
Небесный вне форума Ответить с цитированием
Старый 13.12.2011, 18:20   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Перехватывайте нажатие клавиш и клацание мышкой по форме. А на нужную комбинацию вешайте разблокировщик, через семафоры. Будет время, примерчик набросаю

upd

Для формы поставь свойство KeyPreview, а в методе onKeyDown формы напиши это
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  MessageBox(Self.Handle, PAnsiChar('Клавиша: ' + IntToStr(Key)), 'Клавиши', MB_OK);
end;
Это чисто пример, дальше сам.
Вложения
Тип файла: zip KeyPreviw.zip (4.1 Кб, 11 просмотров)

Последний раз редактировалось psycho-coder; 13.12.2011 в 18:30.
psycho-coder вне форума Ответить с цитированием
Старый 13.12.2011, 18:34   #3
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

По ходу обдумывания и поиска в гугле, пришла мысля:

1. Делать форму (заставку) на весь екран, на ее фон вешать что угодно в рекламных целях, по центур ввод пароля и кнопочку ОК.
2. Держать фокус на форме (не передавая его на другие окна) и держать ее всегда поверх остальных окон.
3. Alt+Tab, Alt+Esc и Alt+Ctrl+Del - отключаем.
включаем при раблокировке.

В случае команды из сервера, или парольный доступ - делать форму невидимой и снимать с нее фокус, что-то типа того, но как все это реализовать пока даже не представляю, в силу скудности опыта.
Небесный вне форума Ответить с цитированием
Старый 14.12.2011, 03:50   #4
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Перехватывайте нажатие клавиш и клацание мышкой по форме. А на нужную комбинацию вешайте разблокировщик, через семафоры. Будет время, примерчик набросаю

upd

Для формы поставь свойство KeyPreview, а в методе onKeyDown формы напиши это
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  MessageBox(Self.Handle, PAnsiChar('Клавиша: ' + IntToStr(Key)), 'Клавиши', MB_OK);
end;
Это чисто пример, дальше сам.
Немного позновато заметил ответ.
Таким вот способом не закроешь комбинации клавишь.
Alt+Tab, Alt+Esc и Alt+Ctrl+Del

Если можно эти комбинации перехватывать, может подскажете как?
Еще бог с Alt+Tab, Alt+Esc - не проблема отключить, но вот
Alt+Ctrl+Del - оказалось сущим адом.
Вечер убил, а так решения и не нашел. Реестр просто запрещает вызов диспетчера, это немного не то.
Пробовал искать решение, как вообще отключить клаву, но опять же трудность с вводом пароля будет.
И пришел опять в тупик.
Небесный вне форума Ответить с цитированием
Старый 14.12.2011, 09:08   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Где-то видел штуку(dLock), которая при помощи драйвера отключает Ctrl+alt+del
Человек_Борща вне форума Ответить с цитированием
Старый 14.12.2011, 10:42   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Где-то видел штуку(dLock)
Dallas Lock?
Вадим Мошев вне форума Ответить с цитированием
Старый 14.12.2011, 11:07   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Нет, вот что я имел ввиду: http://www.kassl.de/dwinlock/index.html
Человек_Борща вне форума Ответить с цитированием
Старый 14.12.2011, 12:07   #8
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Нет, вот что я имел ввиду: http://www.kassl.de/dwinlock/index.html
Здесь серьезно, без бутылки не разобраться, + ко всему триал-версию где-то влепили. (((
Человек_Борща, может все таки поможете разобраться до конца?
Небесный вне форума Ответить с цитированием
Старый 14.12.2011, 12:38   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Справка очень даже понятная. Темболее сэмплы кода прилогаются.
изучи dll, сам грузи драйвер.
Человек_Борща вне форума Ответить с цитированием
Старый 15.12.2011, 20:02   #10
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
По умолчанию

чтоб не заморачиваться можно использовать функцию поиска дескриптора окна (FindWindow) и прихлопывать диспетчер задач windows
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся
Стелс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отлов сигналов от мыши и клавы Ramirag Win Api 0 02.11.2011 19:41
Отслеживание мыши клавы LAFUDR Win Api 1 13.05.2008 12:37
блокировка клавиатуры и мыши Var17 Win Api 6 14.04.2008 15:30
Эмуляция клавы и мыши ЧИЖ Общие вопросы Delphi 4 02.04.2008 07:51