Страница 1 из 1
Эмулятор клавиатуры.
Добавлено: 09 окт 2009, 08:21
atavin-ta
Как программно нажимать и отпускать кнопки, включая F1-F12, esc, праыый и левый shift, праыый и левый alt, праыый и левый ctrl, цифры в верхнем ряду и на цифровой клавиатуре, кнопки управления курсором, page up, page down, insert, delete, home, end, printscreen, scroll lockm, break, caps lock, tab, enter основной и на цифровой клавиатуреб num lock? Как читать состояние индикаторов num lock, caps lock, scroll lock?
Re: Эмулятор клавиатуры.
Добавлено: 13 окт 2009, 00:59
Romeo
Re: Эмулятор клавиатуры.
Добавлено: 13 окт 2009, 09:24
atavin-ta
Спасибо за ссылку. Впринципе, это именно то, что я хотел. Но остаётся не совсем понятно что такое:
1.
dwFlags
[in] Specifies various aspects of function operation. This parameter can be one or more of the following values.
KEYEVENTF_EXTENDEDKEY
If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224).
KEYEVENTF_KEYUP
If specified, the key is being released. If not specified, the key is being depressed.
dwExtraInfo
2.dwExtraInfo
[in] Specifies an additional value associated with the key stroke.
Re: Эмулятор клавиатуры.
Добавлено: 13 окт 2009, 09:36
BBB
atavin-ta писал(а):KEYEVENTF_KEYUP
If specified, the key is being released. If not specified, the key is being depressed.
Если этот флаг установлен, то эмулируется не нажатие, а отпускание клавиши.
Re: Эмулятор клавиатуры.
Добавлено: 13 окт 2009, 10:06
atavin-ta
А если KEYEVENTF_EXTENDEDKEY - то scan=0xE0? Так просто? А что такое "дополнительные величины, ассоцированные с кеей"? Какие то дополнительные данные? В каком формате? И вообще они обязательны? Или можно дать какой нибудь дефолт по всему dwExtraInfo и не мучаться?
Re: Эмулятор клавиатуры.
Добавлено: 13 окт 2009, 11:53
somewhere
" писал(а):А если KEYEVENTF_EXTENDEDKEY - то scan=0xE0?
Просто к скан-код с былых времен однобайтовый, у некоторых клавиш скан-коды совпадают, например у стрелок и букв "HPKM", поэтому они отличаются префиксом расширеной клавиши. Стрелки, нумлок, капс, скролл и пр. считаются расширенными и даже аппаратно читаются из порта клавиатуры как двухбайтовые. Если из порта встретился превикс расширенного скан-кода, то читается следущий код, идентифицирующий расширеную клавишу. В мультимедийных клавах все дополнительные кнопки идут с тем же префиксом.
" писал(а):Какие то дополнительные данные? В каком формате? И вообще они обязательны? Или можно дать какой нибудь дефолт по всему dwExtraInfo и не мучаться?
это фичи события, читай GetMessageExtraInfo. Вообще там по дефолту можно 0 и не париться, в них имхо ничего полезного для сообщений от клавы.
Re: Эмулятор клавиатуры.
Добавлено: 14 окт 2009, 11:27
atavin-ta
" писал(а):Просто к скан-код с былых времен однобайтовый, у некоторых клавиш скан-коды совпадают, например у стрелок и букв "HPKM", поэтому они отличаются префиксом расширеной клавиши. Стрелки, нумлок, капс, скролл и пр. считаются расширенными и даже аппаратно читаются из порта клавиатуры как двухбайтовые. Если из порта встретился превикс расширенного скан-кода, то читается следущий код, идентифицирующий расширеную клавишу. В мультимедийных клавах все дополнительные кнопки идут с тем же префиксом.
Это где? В DWORD dwFlags? Или в PTR dwExtraInfo?