如何在Windows-CE或Windows-Mobile上启用和禁用触摸屏?
我需要任何C#示例代码
答案 0 :(得分:3)
经过几个小时的谷歌搜索终于找到了正确答案:
http://www.hjgode.de/wp/2012/09/24/windows-mobile-disable-touch-input/#more-1543
在底部,您会在code.google上找到源代码:
https://code.google.com/p/win-mobile-code/source/browse/#svn%2Ftrunk%2FdisableTouch
c#的实际工作源代码:
[DllImport("coredll.dll", SetLastError = true)]
private static extern IntPtr GetDesktopWindow();
[DllImport("touch.dll", SetLastError = true)]
private static extern bool TouchRegisterWindow(IntPtr hwnd);
[DllImport("touch.dll", SetLastError = true)]
private static extern void TouchUnregisterWindow(IntPtr hwnd);
public static Boolean Disable()
{
return TouchRegisterWindow(GetDesktopWindow());
}
public static void Enable()
{
TouchUnregisterWindow(GetDesktopWindow());
}
答案 1 :(得分:0)
触摸屏驱动程序与大多数驱动程序不同。它在启动时直接加载到GWES中,并且不能轻易地从该基础结构中“移除”。没有通用的API来启用或禁用它,尽管我使用过的某些OEM确实能够影响触摸屏驱动程序,因此如果您要定位特定设备,则可以与设备OEM进行核对。 / p>
您可能还会考虑告诉我们您正在尝试实现的目标,以及为什么我们可以提供其他一些机制来帮助您实现目标。一般来说,禁用触摸屏将是一个不友好的坏主意。
答案 2 :(得分:0)
试试TouchPanelDisable
。积分转到Peter Foot:
[DllImport("touch")]
private static extern void TouchPanelDisable();
有一个TouchPanelEnable
,但isn't usable from managed code。因此,在这种情况下,用户必须进行热重置才能重新启用面板。
在完全禁用触摸之前,您是否考虑过修改应用程序以忽略触摸输入引起的事件?