لماذا تعمل تطبيقاتي التي يتم تشغيلها تلقائيًا بشكل غريب على نظام التشغيل Vista؟

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

  •  08-06-2019
  •  | 
  •  

سؤال

يتيح المنتج الذي نعمل عليه للمستخدم إمكانية إعداده بسهولة ليعمل تلقائيًا عند بدء تشغيل الكمبيوتر.وهذا مفيد لأن المنتج جزء من بيئة العمل الأساسية لمعظم مستخدمينا.
تم تنفيذ هذه الميزة منذ وقت ليس ببعيد وكان كل شيء على ما يرام لفترة من الوقت، ولكن عندما بدأنا في اختبار هذه الميزة على نظام التشغيل Vista، بدأ المنتج يتصرف بشكل غريب حقًا عند بدء التشغيل.على وجه التحديد، يستخدم منتجنا منتجًا آخر (دعنا نسميه X) يتم إطلاقه عندما يحتاج إلى خدماته.المشكلة الفعلية هي أنه عندما يتم تشغيل X مباشرة بعد تسجيل الدخول، فإنه يتعطل أو يبلغ عن أخطاء فادحة تتعلق بالوصول إلى القرص (يحدث هذا حتى عند تشغيل X مباشرة - وليس من خلال منتجنا).

يحدث هذا عندما نقوم بتشغيل منتجنا عن طريق تسجيله في مفتاح "تشغيل" في السجل أو وضع اختصار له في "بدء"المجلد الموجود داخل"قائمة البدأ"، حتى عندما نضع تأخيرًا قدره 20 ثانية تقريبًا قبل بدء التشغيل فعليًا.عندما قمنا بتغيير التأخير إلى 70 ثانية، كل شيء على ما يرام.

لقد حاولنا إعادة إنتاج المشكلة عن طريق تشغيل منتجنا يدويًا مباشرة بعد تسجيل الدخول (من خلال النقر المزدوج على الاختصار الموجود على سطح المكتب) ولكن دون جدوى.

الآن كيف يمكن للتطبيقات التي تعمل بشكل طبيعي بعد دقيقة واحدة من تسجيل الدخول أن تبلغ عن مثل هذه الأخطاء الفادحة عند البدء مباشرة بعد تسجيل الدخول؟

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

المحلول

هذا هو تأثير ميزة جديدة في نظام التشغيل Vista تسمى "الملاكمة":لدى Windows العديد من الآليات التي تسمح للمستخدم/المسؤول بإعداد التطبيقات ليتم تشغيلها تلقائيًا عند بدء تشغيل Windows.تُستخدم هذه الميزة في الغالب لأحد هذه الأغراض:1.البرامج التي تشكل جزءًا من بيئة العمل الأساسية للمستخدم، بحيث يكون الإجراء الأول الذي يتخذه المستخدم عادةً عند بدء تشغيل الكمبيوتر هو تشغيلها.2.جميع أنواع "الوكلاء" في الخلفية - Skype وMessenger وWinamp وما إلى ذلك.

عندما يتم تسجيل عدد كبير جدًا (أو ثقيل جدًا) من البرامج للتشغيل عند بدء التشغيل، تكون النتيجة النهائية هي أن المستخدم لا يمكنه فعل أي شيء خلال الثواني/الدقائق القليلة الأولى بعد تسجيل الدخول، وهو ما قد يكون مزعجًا حقًا.تأتي ميزة "الملاكمة" في نظام التشغيل Vista:

باختصار، يفرض نظام التشغيل Vista على جميع البرامج التي يتم استدعاؤها من خلال مفتاح التشغيل التشغيل بأولوية منخفضة خلال أول 60 ثانية بعد تسجيل الدخول.وهذا يؤثر على كليهما أولوية الإدخال/الإخراج (التي تم ضبطها على "منخفض جدًا") وأولوية وحدة المعالجة المركزية.لا تمر طلبات الإدخال/الإخراج ذات الأولوية المنخفضة جدًا عبر ذاكرة التخزين المؤقت للملفات، ولكنها تنتقل مباشرة إلى القرص.وبالتالي، فهي أبطأ بكثير من عمليات الإدخال/الإخراج العادية.يتم تحديد طول فترة الملاكمة من خلال قيمة التسجيل:"HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DelayedApps\Delay_Sec".

للحصول على شرح أكثر تفصيلا انظر هنا و هنا

نصائح أخرى

ربما يحتاج البرنامج إلى مزيد من المعلومات لوضعها في خصائصه.يحتاج إلى "تشغيل كـ"، بدلاً من التشغيل فقط.

ربما ينبغي تطوير هذا التطبيق كخدمة، بدلاً من برنامج سيتم إطلاقه، أو يمكن أن يكون لديك خدمة تقوم بتشغيل البرنامج عندما يتم تحديد أفضل فرصة سانحة.

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