Avatar ·

كيفية إنشاء تطبيق WPF يتم تشغيله مرة واحدة فقط؟

مرحبًا بالجميع! أنا أكتب تطبيق WPF بلغة C# وواجهت مشكلة: إذا قام المستخدم بتشغيل التطبيق عدة مرات، تفتح عدة نوافذ، مما يؤدي إلى الارتباك وزيادة الحمل. أريد أن أجعل التطبيق عند التشغيل المتكرر إما يركز على النافذة المفتوحة بالفعل أو يعرض رسالة تفيد بأن البرنامج قيد التشغيل بالفعل. حاولت استخدام `Process.GetProcessesByName`، لكن هذا غير موثوق لأنه قد يكون هناك عدة عمليات بنفس الاسم. حاولت البحث على الإنترنت، لكنني وجدت العديد من الطرق المختلفة — عبر `Mutex`، عبر `EventWaitHandle`، عبر `NamedPipe`. أنا مبتدئ ولا أفهم أي طريقة تعتبر صحيحة وآمنة. إليك مثال على الكود الخاص بي (App.xaml.cs) الذي أحاول تعديله: ```csharp public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { // هنا أريد إضافة التحقق من وجود مثيل واحد base.OnStartup(e); } } ``` أرجو إرشادي، من فضلكم، كيف أفعل ذلك بشكل صحيح؟