CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Пользователь и его тень

Денис НАЗАРЕНКО

Иногда наступает момент, когда хочется отложить работу, забыть о базах данных и немного поразвлечься. Один из способов это сделать — подшутить над любимым начальником или, по крайней мере, над кем-нибудь за соседним компьютером. В Интернете можно найти множество таких «шуточных» программок, но ведь настоящие программисты пишут такие программы сами. В функциях Windows API заложено достаточно много возможностей для реализации чувства юмора программистов. Предлагаю вам ознакомиться с некоторыми из них.

Получение и изменение координат курсора.

Для получения координат курсора используется функция:

В переменных LpPoint.x и lpPoint.y функция возвращает текущие координаты курсора относительно экрана. Во время ее вызова ваша программа необязательно должна иметь фокус ввода. Достаточно вызвать эту функцию в обработчике событий таймера, узнавать о положении курсора в независимости от того, с какой программой на данный момент работает пользователь. Это показано в Примере 1.

Для изменения координат курсора используется функция:

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

А вот в этой программке показано, как сделать курсор движущимся в противоположную сторону.

Обратите внимание, что откомпилированная программа занимает 18 Кб. Это связано с тем, что в программе не используется модуль Forms, и вместо стандартных для Delphi screen.width и screen.height используется вызов функций API GetSystemMetrics(SM_CXSCREEN) и GetSystemMetrics(SM_CYSCREEN).

Получение информации о состоянии клавиши.

О состоянии клавиши на клавиатуре или мышке мы можем узнать из функции

Вот несколько строчек, наглядно демонстрирующих использование этой функции:

Существует еще одна функция —GetAsyncKeyState, позволяющая определить состояние кнопок. Отличается она тем, что позволяет узнать, была ли нажата нужная клавиша с момента последнего вызова этой функции. К сожалению, эта функция не работает, если клавиша была нажата вне фокуса ввода приложения. С использованием этих функций вы сможете познакомиться в Примере 4.

Имитация нажатия пользователем клавиш.

А теперь самое интересное. Оказывается, в Windows есть функции, позволяющие имитировать нажатие пользователем клавиш:

Начиная с Windows 98 и Windows NT 4.0 SP3, Microsoft рекомендует использовать функцию:

Посмотрите внимательно на приведенный ниже фрагмент программы. Процедура TypeWords позволяет добиться эффекта имитации работы пользователя на клавиатуре:

Обратите внимание на то, что для набора букв в верхнем регистре необходимо нажать клавишу Shift. Точно так же следует поступать, если вам необходимо набрать комбинацию клавиш с нажатой кнопкой Ctrl. В Примере 5 показано использование этой процедуры для работы с мышкой.

Надеюсь, что приведенные функции позволят вам в полной мере проявить фантазию, как при создании шуточных программ, так и для написания демонстрационного учебника к ваше программе.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov