如何在Windows-CE或Windows-Mobile上启用和禁用触摸屏?
我需要任何C#示例代码
发布于 2013-03-05 23:49:17
经过几个小时的谷歌搜索,终于在这里找到了正确的答案:
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());
}发布于 2011-03-17 21:27:36
触摸屏驱动程序与大多数驱动程序不同。它在启动时直接加载到GWES中,并且不能轻易地从该基础设施中“移除”。没有通用的API来启用或禁用它,尽管我工作过的一些OEM确实有能力影响触摸屏驱动程序,因此如果您针对的是特定设备,您可以与设备OEM进行检查。
你也可以考虑告诉我们你到底想要实现什么以及为什么,我们也许能够提供一些其他的机制来让你达到你想要的目标。一般来说,禁用触摸屏将是一个不友好的、糟糕的主意。
发布于 2011-03-17 21:32:29
试试TouchPanelDisable。功劳归于Peter Foot
[DllImport("touch")]
private static extern void TouchPanelDisable();有一个TouchPanelEnable,但它是isn't usable from managed code。因此,在这种情况下,用户必须执行热重置才能重新启用面板。
在您完全禁用触摸之前,您是否考虑过修改您的应用程序以简单地忽略由触摸输入引起的事件?
https://stackoverflow.com/questions/5339464
复制相似问题