Также с помощью реестра можно узнать информацию о пользователе устройства. За эту информацию отвечает параметр Owner в разделе HKEY_CURRENT_USER\ControlPanel\Owner. В листинге 13.21 приведен код, который получает эту информацию.

Листинг 13.21

private void butOwner_Click(object sender, EventArgs e) {

 string strOwner = "";

 Registry.GetStringValue(Registry.HKCU, "\\ControlPanel\\Owner", "Owner",

  ref strOwner);

 lblInfo.Text = strOwner;

}

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

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

Листинг 13.22

///

/// Функция возвращает статус подключаемой клавиатуры и ее

/// возможности.

///

/// Функция возвращает битовую маску,

/// показывающую присутствие клавиатуры и ее возможности

///

[DllImport("coredll.dll")]

public static extern uint GetKeyboardStatus();

///

/// Показывает присутствие клавиатуры в системе

///

public const uint KBDI_KEYBOARD_PRESENT = 0x0001;

///

/// Показывает доступность клавиатуры.

/// Данный бит может быть изменен функцией

/// EnableHardwareKeyboard

///

public const uint KBDI_KEYBOARD_ENABLED = 0x0002;

///

/// Показывает наличие на клавиатуре клавиш ENTER и ESC

///

public const uint KBDI_KEYBOARD_ENTER_ESC = 0x0004;

///

/// Показывает наличие клавиш с буквами и цифрами

///

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);

}

<p>Виброзвонок</p>

Как правило, практически все современные модели мобильных телефонов и смартфонов поддерживают функцию виброзвонка. Следовательно, должны существовать функции для его включения и выключения. Для использования виброзвонка на смартфоне применяются функции Vibrate, VibrateStop и VibrateGetDeviceCaps.

При помощи этих функций разработчик может использовать возможности виброзвонка в своих приложениях. Соответствующий код приведен в листинге 13.23.

Листинг 13.23

///

/// Включает виброзвонок

///

/// S_OK сообщает об успешном вызове функции. В случае

/// ошибки возвращается E_FAIL

///

[DllImport("aygshell")]

private static extern int Vibrate(int cvn, IntPtr rgvn, uint fRepeat,

 uint dwTimeout);

///

/// Останавливает виброзвонок

///

/// S_OK сообщает об остановке виброзвонка. В случае

/// ошибки возвращается EFAIL

///

[DllImport("aygshell")]

private static extern int VibrateStop();

///

/// Получает сведения о возможности использования виброзвонка

///

/// Перечисление VIBRATEDEVICECAPS,

/// определяющее возможности воспроизведения виброзвонка

/// устройством.

///

[DllImport("aygshell")]

private static extern int VibrateGetDeviceCaps(VibrationCapabilities caps);

///

Перейти на страницу:

Похожие книги