Эмулировать удерживаемую клавишу на клавиатуре? - PullRequest
1 голос
/ 23 июня 2011

Я знаю, что SendKeys могут эмулировать набор текста и отправлять отдельные нажатия клавиш, но я ищу способ эмулировать удерживание клавиши. Моя цель - приложение, которое выступает в качестве джойстика для оконной игры. Представьте себе, что вы держите планшетный ПК с клавишами со стрелками и основными кнопками по обеим сторонам экрана и нажимаете на них, чтобы имитировать нажатия клавиш, которые затем получает игра. Это моя цель.

Когда палец нажимает на кнопку, я хочу перевести это на нажатие клавиши клавиатуры. После отпускания этой кнопки я хочу отпустить этот ключ. Я знаю, что это, вероятно, потребует некоторого кода низкого уровня, и я в порядке с этим.

ПРИМЕЧАНИЕ. Я НЕ хочу эмулировать эти события в своем собственном приложении, но в масштабе всей системы. Я пишу это для моей игры XNA, и она не слушает прямые, фокусирующие события клавиши, она проверяет состояние клавиатуры (как я полагаю, большинство игр) и реагирует на это. Я хочу, чтобы мое приложение обмануло мою игру, заставляя думать, что клавиша нажата в нужное время.

1 Ответ

1 голос
/ 12 июля 2011

Если вы хотите эмулировать его для всей системы, вы можете использовать SendInput из Core.dll.Здесь есть более подробная информация о том, как это сделать здесь .

Однако очень редко вам это действительно понадобится.Вместо этого вы должны попытаться манипулировать только своим собственным приложением (в этом случае вам, скорее всего, нужно).Вы можете просто создать переменные для всех клавиш, которые вы хотите прочитать, и затем прочитать эти переменные как с клавиатуры, так и с планшета.

РЕДАКТИРОВАТЬ о, эта ссылка вероятно будет лучше ...

...