ОТВЕТ. Для этого метода не существует собственного эквивалента. Однако хороший пример API управляемого кода можно найти по адресу pinvoke.net. .
Всем привет
У меня есть приложение, которое принимает флаг для режима трассировки. Режим трассировки включает форму, содержащую текстовое поле. Текстовое поле отображает выходные данные через пользовательский объект TraceListener. Если в командной строке присутствует -t, окно трассировки будет открыто из своего собственного потока с низким приоритетом. Это удобно для консультантов, которые пытаются диагностировать приложение, когда что-то идет не так.
Несколько консультантов попросили, чтобы нажатие какой-то непонятной комбинации клавиш во время запуска включало режим трассировки, чтобы им не приходилось каждый раз переходить в командную строку, чтобы активировать его. Это разумная просьба.
Я не хочу давать им кнопку или пункт меню для этого, потому что много критической информации, которая будет интересна консультантам, отображается в Trace при запуске до того, как будет создана основная форма, поскольку различные компоненты создаются и инициализируются.
Я думал, что это должно быть достаточно просто, чтобы определить текущее состояние клавиатуры в .NET, но кажется, что куда бы я ни посмотрел, рекомендуется использовать [DllImport("user32.dll", EntryPoint = "GetKeyboardState", SetLastError = true) ] в качестве метода обнаружения происходящего.
Это все хорошо и хорошо - меня это устраивает. Однако, как правило, я стараюсь убедиться, что использую собственный управляемый код .NET для функций Windows, прежде чем пытаться создать свой собственный.
Существует ли собственный метод .NET или эквивалент GetKeyboardState в user32.dll?