Событие клавиатуры C#

у меня есть эта проблема, я хочу создать небольшую игру, для университетского проекта с помощью c#, мне нужно создать небольшую библиотеку dll, которая содержит логику игры, но ядро логики является обработка событий клавиатуры. Я знаю, что «система.Форма..»разрешить прослушивание событий клавиатуры, но есть ли способ обработки событий одной клавиатуры без использования библиотеки форм? Мне нужно создать событие, которое «запускается» при нажатии кнопки клавиатуры, событие » как » это:
публичный OnKeyPress (код ключа c)

Есть способ?
Спасибо заранее.

1 ответ

  1. Вам нужно что-то, что загружает и использует DLL. DLL сама по себе не будет работать. Нам нужна дополнительная информация о том, как будет использоваться эта библиотека. Вы можете создать библиотеку, которая имеет только классы обработки / функции, но где-то клавиатура должна быть отслежена.

    Вот сообщение, в котором обсуждается глобальный мониторинг клавиатуры. Ответ на этот вопрос ссылается на статью MSDN .

    Возвращаясь к тому, о чем я упомянул изначально, вам не нужно иметь фактические события в вашей библиотеке. Можно создать библиотеку, содержащую только функциональный код. Этот код может быть вызван с более высокого уровня в общем приложении, где обрабатываются события. Вот очень упрощенный, и честно hackish, пример:

    public static class MyKeyboardActions
    {
        public void HandleKeyCharPress(char keyPressed)
        {
            switch(keyPressed)
            {
                case 'A':
                // do code for key: A
                break;
                case 'B':
                // do code for key: B
                break;
                // etc...
            }
        }
    }
    

    Если вы хотите что-то более конкретное, чем это, вам нужно будет подробнее рассказать о своем проекте в своем вопросе, тогда я могу расширить свой ответ больше, если это необходимо. Как вы можете видеть, однако, нет необходимости в System.Windows.Formsссылке с этим кодом.