【问题标题】:(How) can I obtain additional information about `TOUCHINPUT` source device using `hSource` handle?(如何)使用“Source”句柄获取有关“TOUCH INPUT”源设备的附加信息?
【发布时间】:2020-05-11 08:36:23
【问题描述】:

我在我的 c# windows 应用程序上挂钩 windows 触摸事件,以便允许来自多个触摸屏的输入。我的问题是,我不仅希望能够在运行时区分不同的设备,我还想知道在以前的系统启动会话中设备提供了什么输入。问题是系统似乎在启动时为每个设备提供了唯一的hSource 句柄。

hSourcesaid in Microsoft docs

源输入设备的设备句柄。触摸输入提供程序在运行时为每个设备提供一个唯一的提供程序。

这激发了hSource 不仅仅是唯一标识符的想法。但是我仍然想知道是否有一种方法可以获取有关具有给定 id 的设备的附加信息,最好是对于每个设备都是唯一的,并且在不同的系统启动会话中是一致的。

我已经尝试将此句柄视为文件句柄并使用GetFileInformationByHandle,但令人惊讶的是(这是自嘲)没有成功。

感谢任何帮助,尤其是消极的(即,你是对的,是不可能的,至少对于 windows touch api)。

【问题讨论】:

  • 您是否尝试过GetRawInputDeviceInfo 之类的document 中的示例?
  • 不清楚是什么激发了这个问题。您已经链接到说明如何做您想做的事情的文档。
  • @RitaHan-MSFT 实际上是在搞乱它。感谢您的友好指出!
  • @IInspectable 你是对的。不过我很惭愧,因为我挣扎了一段时间。抱歉耽误您的时间。

标签: windows winapi touch


【解决方案1】:

我能否获得有关TOUCHINPUT 源设备的更多信息 使用hSource句柄?

您可以使用GetRawInputDeviceInfo 获取更多信息,如下所示:

RID_DEVICE_INFO info;
ZeroMemory(&info, sizeof(RID_DEVICE_INFO));
UINT size = 0;
if (GetRawInputDeviceInfo(touchInput.hSource, RIDI_DEVICEINFO, &info, &size)) {
}
else {
    DWORD err = GetLastError();
}

请参阅TOUCHINPUT structureGetRawInputDeviceInfo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-14
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2011-12-28
    • 2012-01-28
    • 1970-01-01
    相关资源
    最近更新 更多