شجرة جهاز Rescan لتغيير الأجهزة أثناء تثبيت برنامج التشغيل

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

سؤال

أنا استخدم installshield لتثبيت طلبي وسائق وخدمة. أحتاج إلى تثبيت برنامج تشغيل Plug-N-Play فقط إذا تم العثور على معرف الأجهزة في مدير الأجهزة. يتم تثبيت برنامج التشغيل باستخدام dpinst.exe. مشكلتي ، هي أنه يمكن للمستخدم في بعض الأحيان إلغاء تثبيت برنامج التشغيل يدويًا (بعد تثبيته أو حتى إلغاء تثبيت "سائق غير معروف" تحت "أجهزة أخرى") وبعد ذلك لا يمكنني العثور على معرف الأجهزة في شجرة الجهاز ، على الرغم من أن الجهاز موصول. إذا قمت بإلغاء شجرة الجهاز أثناء التثبيت باستخدام CM_Reenumerate_DevNode_Ex (الرمز المكافئ لـ "مسح للأجهزة الجديدة") ، يمكنني العثور على معرف الأجهزة ولكن هذا يظهر "معالج العثور على أجهزة جديدة".

هل هناك على أي حال لإنقاذ شجرة الجهاز ولكن قمع "معالج العثور على أجهزة جديدة" أو لتجنب الإنقاذ ولكن لا يزال التأكد من وجود معرف أجهزة الجهاز الخاص بي في النظام؟

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

المحلول

أنا أكتب إجابة جديدة لأن لدينا بالفعل الكثير من التعليقات على التعليقات القديمة ، وكان محتواه يعتمد على سوء فهم صغير للموقف.

المشكلة الفعلية ، كما أفهمها الآن ، هي معالج "إضافة الأجهزة الجديدة" التي تنبثق عند الانسحاب للأجهزة ، قبل تثبيت برنامج التشغيل الخاص بك. لسوء الحظ ، فإن هذا المعالج ينبثق كلما لم يتم العثور على برنامج تشغيل مناسب للتعامل مع جهاز جديد في النظام ، لذلك للتغلب عليه ، فإن الخيار الوحيد هو التأكد من وجود مثل هذا السائق في النظام. هذا يؤدي إلى حلين محتملين يمكنني رؤيته:

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

نصائح أخرى

يبدو أنك تتجول في هذا الأمر بطريقة خاطئة. إذا كان لديك تثبيت قائم على MSI ، فلماذا لا تستخدم Difxapp بدلاً من dpinst؟ أما بالنسبة لمعالج "الأجهزة الجديدة التي تم العثور عليها" ، فستحتاج إلى شيئين هنا:

  1. تأكد من أن ملف INF الخاص بك صحيح (بحيث يرتبط برنامج التشغيل الخاص بك بمعرف الجهاز)
  2. احصل على توقيع WHQL من MS. هناك حاجة إلى هذه الخطوة لـ XP ، حيث لن يتم تعيين برامج التشغيل غير الموثوقة تلقائيًا للأجهزة. مع Vista و 7 ، يمكنك التوقيع رقميًا على السائق بنفسك ، لكنك ستحصل على تحذير أثناء التثبيت ، وسأل المستخدم عما إذا كان يرغب في الوثوق بهذا الناشر (أنت).
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top