Наличие внешней клавиатуры
Наличие внешней клавиатуры
С помощью класса Registry разработчик может получать или устанавливать значения параметров в реестре. Предположим, что нужно узнать, подключена ли к устройству внешняя клавиатура. За данную функцию отвечает параметр HasKeyboard в разделе HKEY_CURRENT_USERSoftwareMicrosoftShell. Если данный параметр имеет единичное значение, то система работает с подключенной внешней клавиатурой. Если значение равно нулю, то клавиатуры нет. В листинге 13.18 приведен код, показывающий, как можно извлечь значение интересующего параметра.
Листинг 13.18
private void butCheckKeyboard_Click(object sender, EventArgs e) {
uint check = 0;
Registry.GetDWORDValue(Registry.HKCU, "SOFTWARE\Microsoft\Shell",
"HasKeyboard", ref check);
lblInfo.Text = Convert.ToBoolean(check).ToString();
}
В этом примере используется функция-оболочка GetDWORDValue из класса Registry. Если же вы предпочитаете обходиться без функций-оболочек, а обращаться напрямую к функциям API, то пример можно переписать так, как показано в листинге 13.19.
Листинг 13.19
private static bool IsKeyboard() {
uint dwordResult;
UIntPtr hkey = UIntPtr.Zero;
try {
int result =
Registry.RegOpenKeyEx(Registry.HKCU, "SOFTWARE\Microsoft\Shell", 0,
Registry.KeyAccess.None, ref hkey);
if (Registry.ERROR_SUCCESS != result) return false;
byte[] bytes = null;
uint length = 0;
Registry.KeyType keyType = Registry.KeyType.None;
result =
Registry.RegQueryValueEx(hkey, "HasKeyboard", IntPtr.Zero, ref keyType,
null, ref length);
if (Registry.ERROR_SUCCESS != result) return false;
bytes = new byte[Marshal.SizeOf(typeof(uint))];
length = (uint)bytes.Length;
keyType = Registry.KeyType.None;
result =
Registry.RegQueryValueEx(hkey, "HasKeyboard", IntPtr.Zero, ref keyType,
bytes, ref length);
if (Registry.ERROR_SUCCESS != result) return false;
dwordResult = BitConverter.ToUInt32(bytes, 0);
return (dwordResult == 1);
} finally {
if (UIntPtr.Zero != hkey) {
Registry.RegCloseKey(hkey);
}
}
}
Теперь эту функцию можно вызвать в любом месте программы, как показано в листинге 13.20.
Листинг 13.20
// Определяем наличие внешней клавиатуры
lblInfo.Text = IsKeyboard().ToString();
ВНИМАНИЕ
Следует, отметить, что при проверке примера на эмуляторе функция обнаруживает присутствие клавиатуры. Что, в общем-то, справедливо, так как с помощью обычной клавиатуры пользователь может вводить данные в программах, запущенных на эмуляторе.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Необходимо наличие закрывающего тега
Необходимо наличие закрывающего тега В стандарте языка HTML 4.01 допускается пропуск закрывающего тега, если программа, которая будет обрабатывать соответствующий документ, сможет «догадаться» о его наличии. Поэтому вполне допустимо опускать закрывающие теги </p> между
Сервер DNS, доступный из внешней сети
Сервер DNS, доступный из внешней сети Работа сети Internet базируется на использовании взаимодействующих между собой серверов DNS. Чтобы понять, как сервер, установленный в локальной сети, позволяет внешним пользователям обращаться к локальным компьютерам по именам,
Как проверить наличие сетевого протокола на своем компьютере
Как проверить наличие сетевого протокола на своем компьютере Под сетевым протоколом мы будем понимать TCP/IP — специально разработанный протокол для обмена информацией между компьютерами в сети. Он отличается высокой скоростью передачи данных и является базовым для
Как самостоятельно распознать наличие в компьютере шпионского ПО?
Как самостоятельно распознать наличие в компьютере шпионского ПО? Отличительной чертой Spyware является то, что их трудно распознать с помощью штатных антивирусных программ. Поэтому для борьбы с ними рекомендуется использовать специальные утилиты, которые во множестве
Раскладка клавиатуры
Раскладка клавиатуры Раскладка для окна ПриветствиеЕсли при установки системы вы в качестве основного языка установили русский язык, а пароль обычно используете на английском языке, то при выводе окна Приветствие вам каждый раз придется переключаться с русского языка
4.1. Методы внутренней и внешней оценки производственного процесса
4.1. Методы внутренней и внешней оценки производственного процесса Внутренние оценки нацелены на выявление приоритетных направлений усовершенствования производственного процесса организации. Группы внутренней оценки руководствуются СММ для выявления таких
Как самостоятельно распознать наличие в компьютере программ-шпионов
Как самостоятельно распознать наличие в компьютере программ-шпионов Отличительной чертой Spyware является то, что их трудно распознать с помощью штатных антивирусных программ. Для борьбы с ними предназначены специальные утилиты, которые можно скачать в Интернете. Но
Наличие нескольких аргументов
Наличие нескольких аргументов Если для связи с некоторой функцией требуется более одного аргумента, то наряду с именем функции можно задавать список аргументов, разделенных запятыми, как показано ниже. printnum(i,j) int i, j;{ printf(" Новых точек = %d. Всего точек = %d. ", i, j); } Мы
Наличие дополнительной клавиатуры
Наличие дополнительной клавиатуры Узнать о наличии в системе подключаемой клавиатуры можно с помощью функции API или просмотрев значение соответствующего ключа в реестре. Использование реестра рассматривалось несколько раньше. В листинге 13.22 приведен код, который
14.2.5. Проверка на наличие значения переменной (подстановка)
14.2.5. Проверка на наличие значения переменной (подстановка) Допустим, что нужно проверить, была ли установлена либо инициализирована переменная. Если это не так, можно тут же воспользоваться другим значением. Формат используемой в этом случае команды будет
4.1.1 Наличие компонентов продукта
4.1.1 Наличие компонентов продукта Для тестирования пакета программ должны иметься в наличии все его поставляемые компоненты (см. 3.1.2 h), а также нормативные документы, указанные в описании продукта (см. 3.1.2
4.1.2 Наличие компонентов системы
4.1.2 Наличие компонентов системы Для тестирования пакета программ необходимо наличие составных частей всех вычислительных систем, указанных в описании
ГЛABA 10 Управление внешней памятью
ГЛABA 10 Управление внешней памятью Термин внешняя память (storage) относится к носителям, применяемым в самых разнообразных устройствах, в том числе к магнитным лентам, оптическим дискам, гибким дискам, локальным жестким дискам и сети устройств хранения данных (storage area networks,
Проверка диска на наличие ошибок
Проверка диска на наличие ошибок В результате различных программных и аппаратных сбоев на жестком диске могут возникать ошибки, которые можно разделить на две группы.? Логические ошибки, или ошибки размещения файлов. Они устраняются программами проверки диска, однако в