جافا: كيف يمكنني الرد على إيقاف تشغيل الكمبيوتر في نظام التشغيل Windows XP؟

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

  •  20-09-2019
  •  | 
  •  

سؤال

هل من الممكن جعل بعض المعالج الذي سيفعل شيئا ما عند إيقاف تشغيل المستخدم مع Java على نظام التشغيل Windows XP (اختياري، WIN7)؟ كيف؟

شكرًا.

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

المحلول

من الممكن إضافة خطاف إيقاف التشغيل إلى برنامج Java الخاص بك الذي يتم استدعاءه إذا كان JVM هو إيقاف التشغيل لأي سبب من الأسباب (غير ذلك System.exit()) بما في ذلك O / S إيقاف التشغيل. هل هذا ما تريده؟

يستخدم: java.lang.Runtime.addShutdownHook(Thread):

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {
        // shutdown code here
        }
    });

نصائح أخرى

هوك الاغلاق يجب أن تفعل الوظيفة.

من عند API Doc.:

يسجل هوك إيقاف التشغيل الظاهري الجديد. تغلق الجهاز الظاهري Java استجابة لشجمان من الأحداث:

  • يتم إنهاء البرنامج بشكل طبيعي، عندما يتم الاحتجاج في آخر موضوع غير مباشر أو عند الخروج من طريقة الخروج (معادل، System.exit)، أو
  • يتم إنهاء الجهاز الظاهري استجابة لمقاطعة المستخدم، مثل كتابة ^ c، أو حدث على نطاق النظام، مثل تسجيل الخروج من المستخدم أو إيقاف تشغيل النظام.
Runtime.getRuntime().addShutdownHook(new Thread() {
  public void run() {
    // do something
  }
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top