我有一台运行 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 句柄。获取桌面窗口返回桌面窗口的句柄。为桌面窗口设置此项应为桌面上的所有窗口以及桌面本身停用它。但请注意,这不会是一个持续的变化(重新启动将撤消它)。
您可以使用的可能值是
#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 )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)