首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式启用/禁用多点触控手指输入?

以编程方式启用/禁用多点触控手指输入?
EN

Stack Overflow用户
提问于 2010-01-15 01:40:13
回答 1查看 7.5K关注 0票数 4

我有一台运行Windows 7的支持多线程的tablet PC。

然而,当使用触控笔时,如果离显示屏太远,我经常会不小心用手指敲击它,这会导致不必要的鼠标点击。

解决方案是导航到“控制面板-笔-和手指输入-手指输入”并取消激活"Use The Finger as a Input device“复选框(所有标题都经过翻译,因此在英文窗口上可能不同)。

现在我在想,我是否也可以通过编程来做到这一点,所以我可以为此编写一个小托盘应用程序。

我尝试使用进程监视器来查找注册表项,但是,我没有找到真正显示与复选框相同的效果的注册表项。

有人知道如何访问这个属性(不使用UI-Automation)吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-24 18:14:15

这可以通过操作MICROSOFT_TABLETPENSERVICE_PROPERTY标志集来完成。

代码语言:javascript
复制
#include <tpcshrd.h>  

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)  {   
    const DWORD_PTR dwHwndTabletProperty =  
        TABLET_DISABLE_PRESSANDHOLD | // disables press and hold (right-click) gesture  
        TABLET_DISABLE_PENTAPFEEDBACK | // disables UI feedback on pen up (waves)  
        TABLET_DISABLE_PENBARRELFEEDBACK | // disables UI feedback on pen button down  
        TABLET_DISABLE_FLICKS; // disables pen flicks (back, forward, drag down, drag up)   
    ATOM atom = GlobalAddAtom(MICROSOFT_TABLETPENSERVICE_PROPERTY);   
    SetProp(hWnd, MICROSOFT_TABLETPENSERVICE_PROPERTY, reinterpret_cast (dwHwndTabletProperty));  
    GlobalDeleteAtom(atom); 
}

(soure,这不是我的功劳)

重要的参数是传递给SetProp的hWnd句柄。GetDesktopWindow返回桌面窗口的句柄。为桌面窗口设置此项应该会为桌面上的所有窗口和桌面本身停用它。但是请注意,这不是一个恒定的变化(重启将撤消它)。

您可以使用的值包括

代码语言:javascript
复制
#define TABLET_DISABLE_PRESSANDHOLD        0x00000001
#define TABLET_DISABLE_PENTAPFEEDBACK      0x00000008
#define TABLET_DISABLE_PENBARRELFEEDBACK   0x00000010
#define TABLET_DISABLE_TOUCHUIFORCEON      0x00000100
#define TABLET_DISABLE_TOUCHUIFORCEOFF     0x00000200
#define TABLET_DISABLE_TOUCHSWITCH         0x00008000
#define TABLET_DISABLE_FLICKS              0x00010000
#define TABLET_ENABLE_FLICKSONCONTEXT      0x00020000
#define TABLET_ENABLE_FLICKLEARNINGMODE    0x00040000
#define TABLET_DISABLE_SMOOTHSCROLLING     0x00080000
#define TABLET_DISABLE_FLICKFALLBACKKEYS   0x00100000
#define TABLET_ENABLE_MULTITOUCHDATA       0x01000000

( http://msdn.microsoft.com/en-us/library/bb969148%28VS.85%29.aspx )

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2066192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档