Программно включать / отключить вход MultyTouch Pinger?

StackOverflow https://stackoverflow.com/questions/2066192

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня есть планшетный ПК с поддержкой с поддержкой мультитох, работающий с Windows 7.

Однако, используя стилус-ручку и уходя слишком далеко от дисплея, я часто случайно ударил его пальцами, что вызывает нежелательные клики мыши.

Решение является перемещением на «Панель управления - входной и входной вход ручки и пальца» и деактивирует флажок «Используйте пальцем в качестве устройства ввода» (все заголовки переведены, чтобы они могли отличаться в английских окнах).

Теперь мне интересно, смогу ли я это сделать программно, поэтому я смогу написать небольшое приложение для этого.

Я пытался использовать монитор процесса для поиска ключей реестра, однако я не нашел ни одного, который действительно показывает тот же эффект, что и флажок.

Кто-нибудь знает, как получить доступ к этому свойству (без использования UI-Automation)?

Это было полезно?

Решение

Это можно сделать, манипулируя 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); 
}

(Я не беру кредиты для этого, соу)

Важным параметром является ручка HWND, которую вы передаете в SetProp. 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 )

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top