Как определить ассоциации дисплея и сенсорного устройства для Windows 10?

В настоящее время я пишу приложение, которое получает сенсорный ввод через сообщения Windows WM_INPUT и HID API. Каждая полученная точка касания имеет дескриптор устройства, с которого она пришла. Это то же самое устройство, о котором сообщает семейство WM_POINTER сообщений для одной и той же точки касания. Мое приложение должно знать, какой монитор соответствует конкретному сенсорному устройству. Есть ли программный способ определить это? Если бы я использовал WM_POINTER API, я мог бы использовать MonitorFromPoint или что-то подобное.

В панели управления в разделе "Оборудование и звук" есть категория "Настройки планшетного ПК". Если щелкнуть эту категорию, откроется диалоговое окно с кнопкой «Настройка». Эта кнопка запускает инструмент калибровки, который позволяет подключить сенсорное USB-устройство HID к монитору. Кто-нибудь знает, куда можно сохранить эти настройки?

соответствующие ссылки:

структура, полученная в WM_INPUT сообщениях:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms645562(v=vs.85).aspx

Структура, полученная в WM_POINTER сообщениях:

https://msdn.microsoft.com/en-us/library/windows/desktop/hh454907(v=vs.85).aspx

Спасибо.


person Cairn Overturf    schedule 02.02.2017    source источник
comment
Если бы система сохраняла связь между HID и монитором, наверняка не было бы необходимости в диалоговом окне калибровки для запроса этой информации.   -  person IInspectable    schedule 02.02.2017
comment
@IInspectable, инструмент калибровки отображает подсказку на каждом экране и предлагает пользователю коснуться соответствующего сенсорного экрана.   -  person Cairn Overturf    schedule 03.02.2017
comment
Точно. Это то же самое, что спросить пользователя, какой физический монитор должен быть связан с конкретным устройством сенсорного ввода.   -  person IInspectable    schedule 03.02.2017
comment
Я должен сказать, что я бы предпочел, чтобы пользователь устанавливал систему только один раз, через Windows. Конечно, если я не смогу найти решение своей проблемы, я попрошу пользователя выполнить калибровку.   -  person Cairn Overturf    schedule 03.02.2017


Ответы (2)


Общий способ определить, где в реестре хранятся данные, — просмотреть изменения в реестре. монитор процессов из Windows Sysinternals Suite от Марка Руссиновича можно использовать для отслеживания и регистрации изменений в реестре Windows. Таким образом, вы можете начать ведение журнала, а затем выполнить калибровку, а затем остановить и просмотреть журнал на предмет желаемой активности реестра.

person Stephen Rauch    schedule 02.02.2017

Вот ссылка на аналогичный вопрос, который я задавал

Связать сенсорное устройство HID с монитором Pnp.

Короче говоря, вы можете использовать данные из вызовов HIDApi с запросами ключей реестра, чтобы связать сенсорные устройства HID с мониторами.

person Clay Brooks    schedule 15.02.2017