كيف تحدد ما إذا تم إعادة توجيه مفتاح التسجيل بواسطة WOW64؟
سؤال
هل من الممكن تحديد ما إذا كان يتم إعادة توجيه مفتاح تسجيل معين أم لا؟
مشكلتي هي أنني أريد تعداد مفاتيح التسجيل في كل من عرض السجل 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.
نصائح أخرى
أنت في قدر لا بأس به من الألم ، وهذا يعتمد على إصدار نظام التشغيل. القائمة الكاملة متاح هنا.