C# Mono - خطاف لوحة المفاتيح ذو المستوى المنخفض

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

  •  02-07-2019
  •  | 
  •  

سؤال

أنا أستخدم الكود الذي وجدته في CodeProject.com لربط لوحة المفاتيح ذات المستوى المنخفض.المشكلة الوحيدة هي أنه يستخدم مكالمات DLL خارجية لا تعمل بشكل أحادي.كنت أتساءل عما إذا كان أي شخص يعرف طريقة لإنجاز نفس الشيء مثل هذا الكود، ولكن هل سيتم تشغيله في كل من Windows باستخدام .net، وLinux باستخدام mono؟

يحرر:توضيح ما أحاول القيام به:أنا أقوم بعمل لوحة القيادة مثل التطبيق.يوجد البرنامج في علبة النظام، وعندما يضغط المستخدم على المفتاح السريع، ستظهر جميع الأدوات الذكية.لذا فإن البرنامج ليس لديه تركيز، لذلك عادةً لن يلتقط أي ضغطات على المفاتيح، لذلك أستخدم ربط لوحة المفاتيح منخفض المستوى وأقوم بربط المفتاحين اللذين يحددهما المستخدم على أنهما مفاتيح التشغيل السريع.لكنني أستخدم استدعاء Windows DLL لذلك، وهو ما لا يعمل في Linux باستخدام mono.لذلك أتساءل عما إذا كانت هناك طريقة للقيام بنفس الشيء، ولكن هل سيتم تشغيلها في Linux باستخدام mono؟

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

المحلول

ليس من الممكن الحصول على هذا السلوك باستخدام .Net فقط.يجب عليك استخدام برنامج تشغيل ثنائي لكل منصة تعمل عليها (Windows وLinux وMac OS).قد يكون من الممكن استخدام P/Invoc فقط (اكتشف نظام التشغيل الذي تعمل عليه، واستدعاء مكتبات النظام المناسبة) حتى لا تضطر إلى توزيع أي ملفات dll/so/dylib "إضافية".

نصائح أخرى

بدون معرفة ما تحاول التقاطه، من الصعب التأكد مما سيعمل بالنسبة لك.قد ترغب في إلقاء نظرة على استخدام Application.AddMessageFilter.

مثال هنا: http://dn.codegear.com/article/30129

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top