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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2012, 17:07   #1
Maincore
Пользователь
 
Регистрация: 06.07.2011
Сообщений: 51
По умолчанию keybd_event

Как можно определить была ли использована эта функция keybd_event или все же клавиша была нажата физически?
Maincore вне форума Ответить с цитированием
Старый 13.02.2012, 19:02   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

http://www.transl-gunsmoker.ru/2009/...post_9405.html

"Как мне эмулировать действия клавиатуры в программе?"
"Как мне распознать эмулированный ввод?"
"Как мне эмулировать клавиатуру в программе, но чтобы она не распознала это?"
"Как мне распознать эмулированный ввод с защитой от детекта?"
"Как мне..."

Это бесконечный процесс. Нужно где-то остановиться.

Разработчики Windows остановились на шаге 1. Эмуляция на то и эмуляция, что она полностью повторяет операцию ввода. Она вставляет данные в очередь ввода. Эти данные ничем не отличаются от тех, что приходят от драйвера клавиатуры. Всё, ты в матрице.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 14.02.2012, 22:41   #3
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Я думаю, что отличить их невозможно, поскольку keybd_event вызывает соотвествующие прерывание клавиатуры и это равносильно физическому нажатию.
А для чего ставиться такая задача?
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 14.02.2012, 22:45   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
вызывает соотвествующие прерывание клавиатуры
че за бред?
все что она делает это ставит данные в очередь сообщений, причем иными методами обработки ввода(насколько слышал, например DI) она отлично обходиться, так как идет опрос самого драйвера.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SendInput, KeyBD_Event Zirr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 16.07.2011 13:26
keybd_event в c# Lemo Помощь студентам 2 05.02.2011 17:36
keybd_event() Умед Общие вопросы Delphi 4 26.07.2010 13:49
Проблемы с keybd_event AxenicX Win Api 0 06.02.2010 23:44
keybd_event [Smarik] Win Api 1 23.03.2008 18:11