Задача — перехватить нажатие клавиши в винде (не в конкретном приложении) и заменить другим. Перехват удалось реализовать, установив хук на WH_KEYBOARD, а вот эмуляция нажатия клавиши не выходит (посылаю сообщение WM_CHAR).
Здравствуйте VictorT, Вы писали:
VT>Здравствуйте Alexander Shargin, Вы писали:
AS>>Посмотри SendInput (Win98/NT+SP3+/2000) или keybd_event.
VT>Если можно, поподробнее, ничего не понял.
Я назвал тебе две функции, которые, возможно, могут помочь. Они "симулируют" клавиатурный ввод. SendInput удобнее, но есть не на всех платформах.
VOID keybd_event(
BYTE bVk, // код виртуальной клавиши
BYTE bScan, // аппаратный скан-код
DWORD dwFlags, // флаги
DWORD dwExtraInfo // дополнительное поле, связанное с нажатием
);
typedef struct tagKEYBDINPUT {
WORD wVk;
WORD wScan;
DWORD dwFlags;
DWORD time;
DWORD dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT, FAR* LPKEYBDINPUT;
typedef struct tagINPUT {
DWORD type;
union {
MOUSEINPUT mi;
KEYBDINPUT ki;
HARDWAREINPUT hi;
};
} INPUT, FAR* LPINPUT;
UINT SendInput(
UINT cInputs,
LPINPUT pInputs,
INT cbSize
);
Эти функции достаточно понятно описаны в MSDN. Если будут какие-то вопросы, спрашивай конкретно.
VT>Извиняюсь, что по ошибке послал аналогичное сообщение не в ту нить, наверное его надо удалить.
Удалил.