2015-04-02 2 views
0

Я пытался использовать пространство имен Windows.Input.Keyboard в .NET framework до захватить ввод с клавиатуры, когда моя программа не имеет фокуса, но когда Я компилирую и отлаживаю его, вызывается InvalidOperationException и говорит мне: «Вызывающий поток должен быть STA», когда я пытаюсь проверить нажатое состояние ключа.
Теперь я мало знаю об этом делете, но могу только предположить, что консольная программа не может работать как поток STA, в этом случае это означает, что мне нужно сделать Forms или какой-либо другой тип приложения другим чем консольная программа? Или есть более удобный способ сделать это через консольную программу в другом пространстве имен .NET Framework, о котором я не слышал?Захват вне фокуса ввода с клавиатуры C# консольная программа

tl; dr Как я могу получить нажатия клавиш, которые происходят, когда моя консольная программа, которая их записывает, не в фокусе?

ответ

0

Не знаю, как пометить как дублированный, но этот парень:

How can I make my Windows Forms application 'listen' for global key presses?

ответил на этот вопрос, прежде чем;) Используйте первый Global Крючок для C#. Хорошо работает для меня

+0

Спасибо, миллион! Я думал, что искал достаточно тщательно, не думаю, что –

Смежные вопросы