如何在Windows Embedded Standard 7上的WinForms应用程序中,使用C#检测设备是否支持触摸功能?

3
以下代码在Windows 7上运行良好,但在Windows Embedded Standard 7上则不行:
[System.Runtime.InteropServices.DllImport("user32.dll")]
    public static extern int GetSystemMetrics(int nIndex);

    public static bool isTouchEnabled()
    {
        int MAXTOUCHES_INDEX = 0x95;
        int maxTouches = GetSystemMetrics(MAXTOUCHES_INDEX);

        return maxTouches > 0;
    }

在WinUser.h中,该值为#define SM_MAXIMUMTOUCHES 95十进制,而不是十六进制0x95。 - Jinjinov
1个回答

1
你可以尝试这个:
var hasTouch = Windows.Devices.Input
              .PointerDevice.GetPointerDevices()
              .Any(p => p.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch);

想了解更多,请查看reference


对于 Windows.Devices.Input.PointerDevice.GetPointerDevices(),最低支持的客户端是 Windows 8 链接 - pankaj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接