Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHIMASTER.ru

Выпуск от 04.09.03 09:04

Вышел очередной дайджест форумов. Скачать можно здесь
Кое-что из нашей кладовки   |x|
Лучшее из нашего FAQ   |x|
Включение и выключение устройств ввода/вывода из программы на Delphi
Решение для Delphi 1
Иногда может возникнуть необходимость в выключении на время устройств ввода - клавиатуры и мыши. Например, это неплохо сделать на время выполнения кода системы защиты от копирования, в играх, или в качестве "наказания" при запуске программы по истечению срока ее бесплатного использования ... . Однако наилучшее ее применение - отключение клавиатуры и мыши на время работы демонстрационки, основанной на воспроизведении записанных заранее перемещений мышки и клавиатурного ввода. Это элементарно сделать при помощи API:
EnableHardwareInput(Enable:boolean): boolean;
Enable - требуемое состояние устройств ввода (True - включены, false - выключены). Если ввод заблокирован, то его можно разблокировать вручную - нажать Ctrl+Alt+Del, при появлении меню "Завершение работы программы" ввод разблокируется.
Еще раз подчеркиваю, что это работает только в 16-ти разрядной D1. Исследования в отладчике показали, что функция по сути ничего не делает, только устанавливает некий флаг в памяти, явно отвечающий за блокировку клавиатуры/мыши.

Решение для Delphi 2+
По сложно объяснимым причинам фирма Microsoft удалила функцию EnableHardwareInput из 32-рарядных реализаций Windows и, следовательно, EnableHardwareInput стала недоступной в D2+. Однако научные изыскания (в ядре Windows при помощи отладчика) помогли мне найти ее аналог. Он не документирован в справке Borland, но кажется есть в последнем MSDN
Procedure BlockInput(ABlockInput : boolean); stdcall; external 'USER32.DLL';
Вызов данной функции c параметром true блокирует клавиатуру и мышь, с параметром false - разблокирует). Как и в случае с EnableHardwareInput блокировка снимается при нажатии Ctrl+Alt+Del.

Коментарий от "Dead Gamer" (DeadGamer@rambler.ru)
Для блокировки я воспользовался следующим методом, Ну вот пример процедуры:

// Процедура блокировки.
procedure Block();
begin
  Hoo := 0;
  Hoo1 := 0;
  module := LoadLibrary('fun.dll');
  @Funk := GetProcAddress(module, 'Funk');
  Hoo := SetWindowsHookEx(WH_KEYBOARD, @Funk, module, 0);
  Hoo1 := SetWindowsHookEx(WH_MOUSE, @Funk, module, 0);
  Temp:='blocked';
end;

где Fun.dll абсолютно любая собсвенноручно написанная библиотека...

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Эволюция средств разработки Web приложений в Delphi. Часть 3. Использование Web Services
Web Service – это приложение-сервер, предоставляющее клиенту свои функции через протоколы Internet. В отличие CGI и других подобных internet приложений, Web Services ориентируются не на предоставление информации человеку в удобной для восприятия форме, а на обмен информацией между приложениями...
Новинки книжного рынка   |x|
Экстремальное программирование: планирование. Библиотека программиста
Эта книга харизматических лидеров экстремального программирования — о том, как планировать проекты разработки программного обеспечения по технологии XP. В основном она предназначена руководителям — тем, кто должен составлять план работ, а потом следить, чтобы он соответствовал действительности. Она будет полезна и программистам с заказчиками, поскольку это две основные роли в процессе планирования и разработки ПО.
Автор: Kent Beck, Martin Fowler
Другие сайты о DELPHI   |x|
Extractor - Все (или почти все) для копателей игровых ресурсов!
Здесь размещаются описания форматов графики и архивов из игр, а так же более 80 распаковщиков и конвертеров к более чем 90 играм! Добрая половина програм написана Автором и поставляется с исходниками ...

» Оценка сайта: 5
Опрос населения :)
К какой возрастной категории Вы принадлежите ?
»»» меньше 16
»»» от 17 до 20
»»» от 21 до 23
»»» от 24 до 26
»»» от 27 до 30
»»» от 30 до 35
»»» от 35 до 40
»»» от 40 до 44
»»» больше 45
Для души

Хокку дня
Ветер осенний
Брызги подняв
Вброд переходит…

Афоризмы
Какая разница, сколько людей видело летающие тарелки, если этого не может быть.

Фраза дня
"Другие не лучше", - надпись на зеркале.

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Калифорнии (США) есть закон, гарантирующий жителям штата право загорать на солнце.
В Аризоне (США) считается преступлением отказать человеку в просьбе дать стакан воды. В этом же штате незамужним женщинам запрещается рыбачить в одиночку. Если женщина замужем, она может ходить на рыбалку одна только по воскресеньям.

И на закуску коротенький анекдот
2 программера в дупель пьяные из кабака выходят, один другому говорит:
- Ну, что, включай автопилот.
- А у меня его нету.
- Ну, тогда включай эмулятор автопилота.

Фотоприколы.
Начните день с хорошего настроения!
http://www.delphimaster.ru/cgi-bin/prikol.pl?id=7613


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (merlin@delphimaster.ru)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное