Также с помощью реестра можно узнать информацию о пользователе устройства. За эту информацию отвечает параметр Owner
в разделе HKEY_CURRENT_USER\ControlPanel\Owner
. В листинге 13.21 приведен код, который получает эту информацию.
private void butOwner_Click(object sender, EventArgs e) {
string strOwner = "";
Registry.GetStringValue(Registry.HKCU, "\\ControlPanel\\Owner", "Owner",
ref strOwner);
lblInfo.Text = strOwner;
}
Наличие дополнительной клавиатуры
Узнать о наличии в системе подключаемой клавиатуры можно с помощью функции API или просмотрев значение соответствующего ключа в реестре. Использование реестра рассматривалось несколько раньше. В листинге 13.22 приведен код, который показывает, как можно узнать о присутствии подключенной клавиатуры с помощью функции API GetKeyboardStatus
.
///
/// Функция возвращает статус подключаемой клавиатуры и ее
/// возможности.
///
///
/// показывающую присутствие клавиатуры и ее возможности
///
[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);
}
Виброзвонок
Как правило, практически все современные модели мобильных телефонов и смартфонов поддерживают функцию виброзвонка. Следовательно, должны существовать функции для его включения и выключения. Для использования виброзвонка на смартфоне применяются функции Vibrate
, VibrateStop
и VibrateGetDeviceCaps
.
При помощи этих функций разработчик может использовать возможности виброзвонка в своих приложениях. Соответствующий код приведен в листинге 13.23.
///
/// Включает виброзвонок
///
///
/// ошибки возвращается E_FAIL
///
[DllImport("aygshell")]
private static extern int Vibrate(int cvn, IntPtr rgvn, uint fRepeat,
uint dwTimeout);
///
/// Останавливает виброзвонок
///
///
/// ошибки возвращается EFAIL
///
[DllImport("aygshell")]
private static extern int VibrateStop();
///
/// Получает сведения о возможности использования виброзвонка
///
/// Перечисление VIBRATEDEVICECAPS,
/// определяющее возможности воспроизведения виброзвонка
/// устройством.
///
[DllImport("aygshell")]
private static extern int VibrateGetDeviceCaps(VibrationCapabilities caps);
///