تمكين / تعطيل إدخال الإصبع متعدد اللعين برمجيا؟

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

  •  20-09-2019
  •  | 
  •  

سؤال

لدي جهاز كمبيوتر لوحي متعدد الذكاء يعمل بنظام Windows 7.

ومع ذلك ، عند استخدام قلم القلم والابتعاد عن الشاشة ، غالبًا ما أصابها عن طريق الخطأ بأصابعي التي تسبب نقرات الماوس غير المرغوب فيها.

يتم التنقل في الحل إلى "لوحة التحكم - إدخال القلم والإصبع - إدخال الإصبع" وإلغاء تنشيط خانة الاختيار "استخدم الإصبع كجهاز إدخال" (جميع العناوين مترجمة حتى تكون مختلفة على النوافذ الإنجليزية).

الآن أتساءل عما إذا كان بإمكاني القيام بذلك برمجياً أيضًا ، لذلك سأكون قادرًا على كتابة تطبيق صينية صغيرة لهذا الغرض.

حاولت استخدام Process Monitor لمعرفة مفاتيح التسجيل ، ومع ذلك ، لم أجد واحدة والتي تظهر حقًا نفس تأثير مربع الاختيار.

هل يعرف أي شخص كيفية الوصول إلى هذه الخاصية (دون استخدام واجهة المستخدم)؟

هل كانت مفيدة؟

المحلول

يمكن القيام بذلك عن طريق معالجة 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