enggpedia Ответов: 2

Нажмите и удерживайте клавишу клавиатуры программно


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

Обычно мы посылаем ключи через функции sendkey, но для удержания определенного значения я не знаю, как это сделать.

2 Ответов

Рейтинг:
19

Abhinav S

Эта дискуссия могла бы помощь.


Sergey Alexandrovich Kryukov

Он должен работать, но ссылки показывают устаревший метод; он был заменен SendInput. Мой 5.
Пожалуйста, смотрите мой ответ.
--СА

Nish Nishant

>> мой 5. <<

На его посту стоит всего 4 человека. Значит, ты передумал? :-)

Abhinav S

Да. :)

Nish Nishant

Я дал тебе 5 (настоящий 5, а не SA-5, который обычно является 4) *усмешка*

Sergey Alexandrovich Kryukov

На самом деле я голосую больше 5s, чем 4s, но я думаю, что во многих случаях мои 5 были слишком много.
В данном случае я хотел проголосовать за 4 по незначительной причине, которую я объяснил (устаревшая функция), и я сделал это, но по ошибке набрал "5" в тексте. Поскольку я был своей ошибкой, я исправил ее, повторно проголосовав 5 :-)
--СА

Nish Nishant

Я просто пошутил, СА! :-)

Sergey Alexandrovich Kryukov

:-)
Тем не менее я не хочу делать здесь случайных ошибок (ну, концептуальные ошибки неизбежны), поэтому предлагаю не стесняться указывать на любые ошибки в комментариях-несчастные случаи случаются; например, мой сын недавно врезался в нашу машину в другую; :< и я ничего не могу сделать, кроме как проголосовать за него :-)
--СА

Nish Nishant

Хех :-)

Хорошо, что моему сыну 3 года, он еще не настолько взрослый, чтобы разбивать машины :-)

Sergey Alexandrovich Kryukov

Не волнуйтесь: навыки наезда на машину скоро появятся. Позаботьтесь пока о мелких предметах и животных.
--СА

Abhinav S

Ха-ха :)

Abhinav S

5? или 4? :)

Nish Nishant

Исправлено сейчас :-)

Sergey Alexandrovich Kryukov

Я снова проголосовал; мотивация выше.
--СА

Abhinav S

Я это заметил. :)
Спасибо.

Рейтинг:
11

Sergey Alexandrovich Kryukov

Да, SendKey очень ограниченный.

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

Способ ввода моделирование с помощью API-интерфейса Windows SendInput через P/Invoke.
Видеть http://msdn.microsoft.com/en-us/library/ms646310(v=против 85).aspx[^].

—СА


Nish Nishant

Проголосовал 5 (на самом деле 5, а не 4, как некоторые люди делают) ;-)

Sergey Alexandrovich Kryukov

Спасибо, Нишант.
Вы имеете в виду мои голоса? Наверное, просто входит в моду :-)
По крайней мере, когда я голосую за 4, это означает, что я чувствую достаточно уважения к эксперту, чтобы объяснить, почему нет 5 :-)
--СА

Nish Nishant

Я имел в виду ваш голос 4 выше Абхинава, но ваш комментарий был 5 :-) (кстати, я просто шутил). И, кажется, теперь вы это исправили.

Sergey Alexandrovich Kryukov

Да, Обсуждали. Смотрите мой предыдущий комментарий.
Спасибо, Нишант.
--СА

Abhinav S

Мои 5 за этот ответ и исправление моего голоса. :)

Sergey Alexandrovich Kryukov

Спасибо, Абхинав. Я надеюсь, что ваш голос никоим образом не зависит от моего... :-)
--СА