سؤال

هل هناك أي "معرف جلسة التمهيد" أو (موثوق بها) "التمهيد الطابع الزمني"؟ للحصول على تثبيت أحتاج إلى اكتشاف أن إعادة التشغيل المجدولة حدثت بالفعل.

أعتقد أنني يمكن أن تفعل دمية MoveFileEx() مع MOVEFILE_DELAY_UNTIL_REBOOT, ، لكنني أملك في شيء أسهل.

(يتعين علينا تثبيت حزمة طرف ثالث يتصرف في بعض الأحيان بشكل خاطئ بعد إصلاح / تحديث. في هذه الحالة، قد يصل الوصول إلى الجهاز إلى قفل النظام)

(نظام التشغيل Windows XP، Vista، 7)

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

المحلول

يبدو أن النوافذ لديها ما يعادل "وقت التشغيل". فيما يلي معلومات أكثر: http://support.microsoft.com/kb/555737.

كما أفهمها، يجب أن يخبرك ذلك منذ فترة تمهيد النظام. هل ستحل هذه المعلومات مشكلتك؟

نصائح أخرى

بالنسبة للأشياء مثل هذا، غالبا ما يكون WMI (أدوات إدارة Windows) مكانا جيدا. أعلم أنه يمكنك الحصول على الحجارة الحالية مباشرة من خلالها، والتي قد تسمح لك بتحديد ما إذا كان جهاز إعادة تشغيل مؤخرا.

فيما يلي منشور مدونات مع بعض عينات التعليمات البرمجية كذلك:http://blogs.technet.com/heyscriptingguy/archive/2004/09/07/how-can-i-tell-if-a-server-has-rebooted.aspx.

اعتمادا على لغة التنفيذ الخاصة بك، ربما ترغب فقط في سحب رمز الاستعلام من VBScript.

يمكنك البحث في سجل أحداث النظام للحدث 6009 من مصدر EventLog - هذا هو الحدث الأول المسجل بعد كل إعادة تشغيل.

أعتقد أن أفضل إجابة قد تم بالفعل تقديمها هنا: تعرف على ما إذا كان الكمبيوتر إعادة تشغيله منذ آخر مرة ركض فيها برنامجي؟

يبدو أن هذا هو أبسط طريقة. يستخدم GlobalFindAtom() لمعرفة ما إذا كان موجودا وإنشائه، مع GlobalAddAtom(), ، إذا لم يفعل ذلك. ستستمر خارج تنفيذ البرنامج الخاص بك. إذا تم تشغيل التطبيق الخاص بك مرة أخرى، وترى أن الذرة موجودة، فكلها ليست أول عملية تشغيل منذ إعادة التشغيل.

إذا تم إعادة تشغيل الكمبيوتر، فلن تكون الذرة موجودة، مما يشير إلى أن هذا هو أول تشغيل برنامجك منذ إعادة التشغيل.

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