Книга: Программирование КПК и смартфонов на .NET Compact Framework

Наличие дополнительной клавиатуры

Наличие дополнительной клавиатуры

Узнать о наличии в системе подключаемой клавиатуры можно с помощью функции API или просмотрев значение соответствующего ключа в реестре. Использование реестра рассматривалось несколько раньше. В листинге 13.22 приведен код, который показывает, как можно узнать о присутствии подключенной клавиатуры с помощью функции API GetKeyboardStatus.

Листинг 13.22

/// <summary>
/// Функция возвращает статус подключаемой клавиатуры и ее
/// возможности.
/// </summary>
/// <returns>Функция возвращает битовую маску,
/// показывающую присутствие клавиатуры и ее возможности
/// </returns>
[DllImport("coredll.dll")]
public static extern uint GetKeyboardStatus();
/// <summary>
/// Показывает присутствие клавиатуры в системе
/// </summary>
public const uint KBDI_KEYBOARD_PRESENT = 0x0001;
/// <summary>
/// Показывает доступность клавиатуры.
/// Данный бит может быть изменен функцией
/// EnableHardwareKeyboard
/// </summary>
public const uint KBDI_KEYBOARD_ENABLED = 0x0002;
/// <summary>
/// Показывает наличие на клавиатуре клавиш ENTER и ESC
/// </summary>
public const uint KBDI_KEYBOARD_ENTER_ESC = 0x0004;
/// <summary>
/// Показывает наличие клавиш с буквами и цифрами
/// </summary>
public const uint KBDI_KEYBOARD_ALPHA_NUM = 0x0008;
private void Form1_Load(object sender, EventArgs e) {
 MessageBox.Show("Наличие и доступность клавиатуры: " +
  IsKeyboard().ToString());
}
private static bool IsKeyboard() {
 uint flags = KBDI_KEYBOARD_ENABLED | KBDI_KEYBOARD_PRESENT;
 return ((GetKeyboardStatus() & flags) == flags);
}

Оглавление книги


Генерация: 1.722. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз