سؤال

أنا أعمل على التطبيق (C # 2.0). لقد نفذت مثيل واحد فيه. كل شيء على ما يرام. إذا قمت بتشغيل التطبيق مرة أخرى، فهو يعرض رسالة MessageBox يقول "المثيل قيد التشغيل بالفعل".

في الواقع لا أريد إظهار الرسالة من خلال MessageBox.

أريد أن أظهر هذه الرسالة باستخدام طرف البالون من المثيل قيد التشغيل بالفعل (لقد أخطر الأيقونة في علبة النظام).

كيف يمكنني تحقيق ذلك؟

شكرا مقدما.

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

المحلول

تحتاج إلى شكل من أشكال اتصال interprocess, للإشارة إلى المثيل الآخر الذي يجب عليه عرض صندوق الرسائل.

في هذه الحالة، يمكنك الذهاب بشكل أفضل من إخبار المثيل الموجود لعرض الرسالة، وبدلا من ذلك، أخبرها لاستعادة النافذة الرئيسية لها (أي "unminimisise").

نصائح أخرى

يمكنك استخدام خدمة WCF داخل التطبيق.

يتصل التطبيق الثاني به عبر NetPipe، وينفد طريقة وإغلاق.

يتلقى تطبيقك الأول المكالمة والملوثات العضوية الثابتة إشعار بالون

أسهل طريقة لتنفيذ مثيل واحد وإعلام أول واحد إذا تم تنفيذ الثانية بالفعل في .NET. ما عليك سوى إلقاء نظرة على الروابط التالية:

هانزيلمان: مثيل واحد WinForms

OpenWinforms (حدد تطبيق مثيل واحد صحيح)

ال وقت التشغيل CodeFluent وهي مجموعة مجانية من الأدوات توفر نسخة واحدة فئة لتنفيذ تطبيق مثيل واحد:

لديك فقط لتجاوز WNDProc. طريقة للملوثات العضوية الثابتة - إخطار الخاص بك (نصيحة بالون).

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