加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 05:29:07 所属栏目:Windows 来源:网络整理
导读:我有一台运行 Windows 7的多功能平板电脑. 然而,当使用手写笔并且离显示器太远时,我经常意外地用手指击打它,这会导致不必要的鼠标点击. 解决方案是导航到“控制面板 – 笔和手指输入 – 手指输入”并取消选中“将手指用作输入设备”复选框(所有标题已翻译,因
我有一台运行 Windows 7的多功能平板电脑.

然而,当使用手写笔并且离显示器太远时,我经常意外地用手指击打它,这会导致不必要的鼠标点击.

解决方案是导航到“控制面板 – 笔和手指输入 – 手指输入”并取消选中“将手指用作输入设备”复选框(所有标题已翻译,因此在英语窗口中它们可能不同).

现在我想知道我是否也可以以编程方式执行此操作,因此我可以为此编写一个小托盘应用程序.

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

有谁知道如何访问此属性(不使用UI自动化)?

解决方法

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

#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返回桌面窗口的句柄.为桌面窗口设置此选项应该为桌面上的所有窗口和桌面本身停用它.但请注意,这不会是一个不变的更改(重启将撤消它).

您可以使用的可能值

#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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读