Я ищу способ определить, подключен ли к компьютеру, на котором запущена моя игра, мышь или трекпад, чтобы я мог соответствующим образом настроить элементы управления по умолчанию. Я пытаюсь отличить типичную настройку клавиатуры и мыши, которую вы найдете на настольном компьютере, от ноутбука, который может иметь или не иметь внешнюю мышь, но будет иметь встроенный трекпад.
В псевдокоде это то, чего я пытаюсь достичь:
if (hasMouse())
{
setUpMouseControls();
}
else if (hasTrackPad())
{
setUpTrackPadControls();
}
Есть ли API, который делает это выполнимым? Мои цели поддержки — Windows 7+. Я пишу игру на C ++.
Некоторые трекпады имеют специальные функции, которые можно использовать вместе со специальным драйвером (например, полосы прокрутки на границе трекпада). В этом случае может быть возможно обнаружить присутствие определенного драйвера устройства (например, драйвера Acme Trackpad).
Однако это будет работать только для некоторых моделей трекпэдов!
Вы всегда можете обнаружить трекпад USB по VID / PID.
Однако оба метода будут работать только для моделей трекпада, известных вашей программе.
Другие трекпады (особенно PS / 2 — возможно, встроенные в ноутбуки) не идентифицируют себя как трекпады — они «сообщают» компьютеру, что они обычная мышь.
Там нет шансов обнаружить такой трекпад!
Перейдите по этой ссылке: http://msdn.microsoft.com/en-us/library/ms645600%28VS.85%29.aspx
Вы можете использовать функцию RegisterRawInputDevices для получения сообщений WM_INPUT. Используя это сообщение, вы можете определить тип устройства ввода, а затем установить элементы управления по умолчанию.