Как отправить нажатия клавиш в приложение DirectX? - PullRequest
1 голос
/ 24 января 2010

Мне нужно написать программу на любом языке программирования (предпочтительно Delphi 7 / Delphi 10 / C #), которая эмулирует нажатие 1 каждые 10 секунд для определенного процесса в Windows XP или Windows 7. Отправка сообщений Windows, которая работала для все другие приложения, которые я пробовал, не работали для этого конкретного, и я подозреваю, что это потому, что он использует DirectX. Можно ли это сделать без перезаписи DX*.DLL файлов? Как?

Спасибо,
Том

РЕДАКТИРОВАТЬ: Я только что попытался использовать SendInput (в Delphi 7 на Windows XP с кодом из http://www.swissdelphicenter.ch/torry/showcode.php?id=220), и это не работает, либо

Ответы [ 3 ]

1 голос
/ 24 января 2010

Если приложение не обрабатывает WM_CHAR / etc Windows Messages (XInput / DirectInput), вам лучше всего сделать dll для вставки в приложение, переопределяя некоторые функции, так как они используют системные ресурсы для доступа к клавиатуре / мышь / геймпад. (действительно плохая идея использовать DirectInput / XInput для клавиатуры в любом случае: |)

0 голосов
/ 24 мая 2010

Наконец, я использовал IO.DLL , который, к сожалению, не работает на 64-разрядных, но я все еще рад, что около 90% моей цели использует 32-разрядные.

0 голосов
/ 24 января 2010

Приложение, вероятно, использует DirectInput или XInput. В этом случае мало что можно сделать, поскольку DirectInput работает напрямую с драйвером клавиатуры.

...