الكشف عن توقف التطبيق باستخدام عناصر تحكم ActiveX في .Net

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

  •  09-06-2019
  •  | 
  •  

سؤال

أنا أعمل على ترقيات لتطبيق تجريف الشاشة.نحن نستخدم عنصر تحكم ActiveX لاستخراج الشاشات من حاسب IBM الرئيسي.غالبًا ما يتعطل برنامج الكمبيوتر المركزي ويتعطل عنصر تحكم ActiveX مما يتسبب في تعطل تطبيقنا.ليس لدينا إمكانية الوصول إلى الحاسوب المركزي أو التعليمات البرمجية المصدر لـ ActiveX.لن نكتب عنصر تحكم x النشط الخاص بنا.

ما هي الطريقة الأساسية لتغليف عنصر تحكم ActiveX لاكتشاف تعليق التطبيق مع عنصر التحكم حتى نتمكن من إنهاء العملية وإعادة التشغيل باستخدام التعليمات البرمجية؟

هل يجب علي إنشاء تطبيقين منفصلين؟أحدهما كوحدة تحكم تتحقق من الآخر وتقتل/تعيد تشغيل العملية عند تعليقها؟

هل يجب أن يكونوا في مجالات تطبيقات منفصلة؟هل من الممكن أن يتواصل برنامجان مع بعضهما البعض حتى لو كانا في نطاقات تطبيق منفصلة؟

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

المحلول

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

ستحتاج إلى تطبيقين منفصلين للقيام بذلك بالرغم من ذلك.ويحتاج التطبيق الذي تراقبه إلى نافذة رئيسية لأن المراقبة تعمل عن طريق التحقق مما إذا كان التطبيق لا يزال يعالج الرسائل من قائمة انتظار رسائل النافذة الرئيسية.هذه هي نفس الطريقة التي يعرفها Windows لإضافة "لا يستجيب" إلى عنوان النافذة

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