2013-07-31 3 views
0

мне было просто интересно, что разница между виртуальными этими командами клавиатуры является:Виртуальная клавиатура команды

KEYEVENTF_EXTENDEDKEY и KEYEVENTF_KEYUP есть.

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

+0

'KEYEVENTF_KEYUP' относится к случаю отпускания нажатой клавиши. Например, удерживая клавишу вниз, запускается 'KEYEVENTF_KEYDOWN', высвобождая ее, запускается' KEYEVENTF_KEYUP'. Однако я не уверен в том, что «KEYEVENTF_EXTENDEDKEY» делает – JBelter

ответ

4

Вы отметили вопрос VB.NET, но на самом деле они вообще не имеют отношения к VB.NET. Они являются константами, определенными в заголовочных файлах Windows, для использования с функциями API Win32.

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

Первый из них, KEYEVENTF_EXTENDEDKEY, используется с KEYBDINPUT структурой (который используется вместе с, например, функция SendInput) для передачи информации о синтезированного ввода с клавиатуры. Если этот флаг используется, это означает, что код сканирования следует интерпретировать как расширенный ключ. Технически это означает, что для кода сканирования предшествует префиксный байт со значением 224 (& HE0 в шестнадцатеричной системе).

Второй, KEYEVENTF_KEYUP, является еще одним из флагов, доступных для использования с этой структурой. Это означает, что клавиша выпущена (вверх), а не нажата (спускаясь).

Существует общий обзор ввода с клавиатуры here on MSDN. В нем более подробно объясняется, что такое код виртуального ключа, какой расширенный ключ и т. Д.

+0

Итак, чтобы сделать ввод букв, мне пришлось бы сначала «KEYEVENTF_KEYDOWN», а затем сразу после этого сделать «KEYVENTF_KEYUP»? – bbesase

+0

@bbesase Да, вы бы дважды вызывали функцию «SendInput», один раз с «KEYEVENTF_KEYDOWN» и второй раз с «KEYVENTF_KEYUP». –

+0

Опять же, я не уверен, зачем вам это нужно в VB.NET. Он уже завершен методом 'SendKeys.Send'. –

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