繁体   English   中英

(如何)使用 `hSource` 句柄获取有关 `TOUCINPUT` 源设备的附加信息?

[英](How) can I obtain additional information about `TOUCHINPUT` source device using `hSource` handle?

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

在 Microsoft 文档中说hSource

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

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

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

任何帮助表示赞赏,尤其是负面的(即你是对的,是不可能的,至少对于 windows 触摸 api)。

我可以使用hSource句柄获得有关TOUCHINPUT源设备的其他信息吗?

您可以使用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();
}

请参阅 TOUCINPUT TOUCHINPUTGetRawInputDeviceInfo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM