كيف تحدد ما إذا تم إعادة توجيه مفتاح التسجيل بواسطة WOW64؟

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

  •  01-10-2019
  •  | 
  •  

سؤال

هل من الممكن تحديد ما إذا كان يتم إعادة توجيه مفتاح تسجيل معين أم لا؟

مشكلتي هي أنني أريد تعداد مفاتيح التسجيل في كل من عرض السجل 32 بت و 64 بت بطريقة عامة من تطبيق 32 بت. يمكنني ببساطة فتح كل مفتاح مرتين ، أولاً مع key_wow64_64key ثم باستخدام key_wow64_32key. ومع ذلك ، إذا لم يتم إعادة توجيه المفتاح ، فهذا يمنحك نفس المفتاح تمامًا وينتهي بك الأمر إلى تعداد المحتوى نفسه مرتين بالضبط ؛ هذا ما أحاول تجنبه.

لقد وجدت بعض توثيق على ذلك ، ولكن يبدو أن الطريقة الوحيدة هي فحص الخلية والقيام بمجموعة من مقارنات السلسلة على المفتاح. احتمال آخر فكرت فيه هو محاولة فتح WOW6432NODE على كل مفتاح فرعي ؛ إذا كان موجودًا ، فيجب إعادة توجيه المفتاح. أي إذا كنت أحاول فتح hkcu software microsoft windows ، فسأحاول فتح المفاتيح التالية: hkcu wow6432node و hkcu software wow6432node و hkcu softwar wow6432node. لسوء الحظ ، يبدو أن الوثائق تعني أن طفلًا من مفتاح إعادة التوجيه لا يتم إعادة توجيهه بالضرورة بحيث يكون لدى الطريق أيضًا مشاكل.

إذن ، ما هي خياراتي هنا؟

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

المحلول

هدفك غير واضح. لماذا تحتاج إلى تعداد مفاتيح التسجيل في كل من وجهات نظر السجل 32 بت و 64 بت بطريقة عامة من تطبيق 32 بت؟ ماذا تريد أن تفعل بقيم 64 بت في تطبيقك؟ ماذا ستفعل إذا كان هناك بعض القيم المختلفة لمفتاح X64 و X86؟ يبدو الأمر وكأنه فكرة غريبة أو خاطئة إلى حد ما.

يتم إعادة توجيه المفاتيح لسبب مهم: عدم كسر سلوك تطبيقات X86. فمثلا: CLSID يستخدم من قبل COM للعثور على التنفيذ المناسب لواجهة معينة. من بين أخرى ، "الصحيح" يعني أنه قد يتم تشغيله بواسطة رمز المتصل ، أي يجب أن يكون من نفس النظام الأساسي. لهذا السبب يجب أن تكون هناك مجموعات مختلفة من الإدخالات لـ X64 و X86. أسباب مفاتيح إعادة توجيه أخرى متشابهة. بشكل عام ، تلك المفاتيح المعاد توجيهها يجب أن تكون مختلفة لتطبيقات X86 و X64.

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

تحرير: هناك samDesired معلمة RegOpenKeyEx قد تجدها مفيدة. ألق نظرة أيضًا على "الوصول إلى عرض سجل بديل" مقال MSDN.

نصائح أخرى

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

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