Эмулируем нажатие клавиши клавитуры

Опубиковано: 08.05.2008 г., автор: , просмотров: 79262

Уроки програмирования на языке Delphi.

Сейчас мы узнаем, как эмулировать нажатие клавиши на клавиатуре. Этот пример отлично подойдет для написания какой-нибудь экранной клавиатуры, поможет вам сделать нечто подобное калькулятору Windows т.е что бы пользователь мог вводить числа и символы не только с клавиатуры, но и при помощи мышки. Вообще вариантов применения огромное множество. Итак, для начала кидаем на форму компонент Edit с закладки Standart и компонент Button. Создаем, обработчик событий на кнопке и в нем прописываем следующий код.

SendMessage(Edit1.handle, wm_char, ord('ы'), 0);

Вот так будет выглядеть обработчик событий OnClick для кнопки:

procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage(Edit1.handle, wm_char, ord('ы'), 0);
end;

P.S После нажатия на кнопку в Edit1 будет добавляться символ "Ы", тем самым эмулируется нажатие клавиши на клавиатуре.



Похожие материалы

Последние из рубрики

Серёга 25 Oct 2009 в 00:00 #
А как мне взять взначение "Edit1" и дапустим умножить его или сохранить...
Евгений 20 Apr 2009 в 00:00 #
а на джойстике знает кто нибудь? как эмулировать нажатия клавиш, например при зажатии на джойстик 1-ой и 2-ой кнопки автоматически зажимается 7-ая,как это сделать подскажет кто нибудь, ато у меня 7-мая кнопка не работает
Женек 05 Dec 2008 в 00:00 #
Это совсем не то, что мне надо. А как сделать чтобы конкретно нажималась кнопка на клавиатуре, например чтобы если нажал Ctrl+Alt автоматически нажался Delete и вызвался диспетчер задач???
Андрей 11 Nov 2008 в 00:00 #
Вот настоящая функция эмуляции:
keybd_event("код клавиши, 0, 0, 0); для "нажатия" клавиши;

не забываем "отжимать" клавишу:
keybd_event("код клавиши", 0, KEYEVENTF_KEYUP, 0);
Можно вводить комбинации: по очереди "нажимать", затем
"отжимать". Наше приложение минимизируем, запускаем функцией WinExec нужное нам, "понажимав" Tab выбираем объект, и вводим текст или команду!
Dmitriy_ZDO 11 Sep 2008 в 00:00 #
А если я не знаю, какой объект сейчас находится под курсором, то надо написать так?:
SendMessage(WindowFromPoint(GetCursorPos), wm_char, ord(#13), 0);
Или есть нечто проще?

ОтменитьДобавить комментарий