Есть ли способ заставить SendInput работать с приложением, использующим GDK? - PullRequest
3 голосов
/ 23 июня 2009

У меня есть приложение, которое может успешно вводить ввод с клавиатуры с помощью API SendInput с установленным флагом UNICODE. Это приводит к тому, что сообщения WM_KEYUP и WM_KEYDOWN генерируются с кодом ВК E7 (VK_PACKET), который соответствующим образом преобразуется в правильное сообщение WM_CHAR. Это работает во всех приложениях, которые я пробовал, кроме Pidgin, который использует GDK. GDK, похоже, ищет только WM_KEYUP сообщений. Так как сгенерированные здесь на самом деле не имеют никакого указания на символ ввода (только WM_CHAR), ввод игнорируется. Есть ли способ, которым я мог бы обойти это. Мне не повезло, если я использую SendInput без флага UNICODE.

1 Ответ

0 голосов
/ 22 декабря 2009

Когда у меня была похожая проблема, я использовал буфер обмена в качестве обходного пути. Лучше всего использовать WM_CHAR, и если я найду способ отправить символы Юникода с WM_CHAR, я обновлю свой ответ. Поскольку GTK + является открытым исходным кодом, вы можете внести в него свой вклад и помочь им (я новичок в C).

...