سؤال

تحت OSIX OS ، يوجد واجهة برمجة تطبيقات الإشارة التي تسمح بإرسال إشارة لمعالجةها لإغلاقها بالقتل ويمكنك التقاطها باستخدام SIGACTION والقيام بما تحتاجه ؛

ومع ذلك، Win32 ليس نظام POSIX، لذلك:

  • كيف يمكنني التعامل مع أحداث إيقاف التشغيل التي قد تأتي، على سبيل المثال من "إنهاء العملية" في "إدارة المهام"؟
  • ما هي واجهة برمجة التطبيقات القياسية لإرسال إشارة إيقاف التشغيل إلى تطبيق Win32؟

أنا لا أتحدث عن واجهة المستخدم الرسومية، أنا أتحدث عن خادم TCP/IP الذي يجب إيقاف تشغيله بشكل جيد.الذي - التي لا تشغيل مثل خدمة ويندوز.

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

المحلول

تحصل على WM_QUIT رسالة في أول موضوع قمت بإنشائه.

عندما لا تتعامل مع ذلك، سيتم إيقاف عمليتك بالقوة.

لذلك، ما عليك سوى تنفيذ قائمة انتظار الرسائل في سلسلة المحادثات الأولى، والتي تبحث عن WM_QUIT رسالة

نصائح أخرى

شبكات MSDN دليل ترحيل كود يونكس لديه فصل حول تحويل كود Win32 ومعالجة الإشارات.
وعلى الرغم من أن مايكروسوفت قررت أرشفة هذا الدليل الرائع، إلا أنه مفيد للغاية.

تم وصف ثلاث طرق:
الإشارات الأصلية
كائنات الحدث
رسائل

قد يكون Windows Power Management من MSDN سيكون مفيدا.لكنه يتعامل مع أحداث النظام وليس لكل عملية.

بالنسبة للعملية، ستكون قادرًا على اكتشاف الإنهاء باستخدام WM_CLOSE.سوف تحتاج إلى التعامل مع رسائل ويندوز.إذا كان تطبيق وحدة تحكم، فستحتاج إلى تثبيت معالج تحكم؛نلقي نظرة على SetConsoleCtrlHandler على MSDN

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