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