سؤال

في تطبيق C# winforms (على .NET 3.5 ، ربما 4.0 قريبًا) ، كيف يمكنك السماح للمستخدم بتحديد وحدات الماكرو الخاصة به؟ على سبيل المثال ، يمكن للمستخدم أن يرغب في أن يعني المفتاح PRESS CTRL+K النقر فوق عنصر معين في القائمة ، وإدخال بعض النصوص في مربع الحوار الذي تم فتحه بواسطة القائمة ، قبل الضغط على "موافق" لإغلاق مربع الحوار.

من الناحية المثالية ، يمكن أن يوفر برنامجنا وظيفة تسجيل ماكرو ، والتي من شأنها أن تمكن المستخدم من البدء في التسجيل ، وأداء المهام المطلوبة ، والتوقف عن التسجيل لتوفير ماكرو. هذه الميزة التي يتم استخدامها من الإصدار القديم من البرنامج ، الذي تم كتابته في FoxPro ، وهي أداة لها مثل هذه القدرات مدمجة.

من الواضح أن الخيار الأفضل بالنسبة لنا هو الحصول على مكتبة طرف ثالثة مجربة واختبارها من نوع ما ، ولكن يتم تقدير أفكار لترحيل نسختنا الخاصة أيضًا.

لا يوجد حل صحيح

نصائح أخرى

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

إذا كنت بحاجة إلى أن تكون قادرًا على تسجيل الأحداث حول تطبيقك ، فقد تجد ManagedWinapi أن تكون مفيدة.

لديّ خبرة جيدة في "نمط تصميم القيادة" لوظيفة التسجيل الكلي. كل أمر يطلق النار على بعض الحدث على نطاق التطبيق (ثابت على سبيل المثال) مع معلومات معلمات ABOU وما إلى ذلك ... يستمع المسجل إلى هذا الحدث ويستمر في تسلسل استدعاء الأوامر.

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