كيف أقوم بتشغيل عملية أخرى في وضع توافق XP؟
-
22-09-2019 - |
سؤال
يتطلب التطبيق الخاص بنا تثبيت برنامج تشغيل جهاز HASP SRM حتى يتم تثبيت وتشغيله.
في هذا الوقت ، تعمل برامج تشغيل 5.50 فقط على جميع المنصات التي تم اختبارها (كلا من 5.75 (رسمي) و 5.86 (بيتا) برامج التشغيل على حوالي 1 من 3 أجهزة كمبيوتر تم اختبارها).
وبالتالي ، فإن برامج التشغيل 5.50 جيدة ، وأي شيء آخر متاح حاليًا مكسور ، ويرفض برامج التشغيل 5.50 تحميلها تحت Vista و Windows 7. ومع ذلك ، إذا قمت بتعيين خصائص EXE على "وضع توافق XP" ، فإن برنامج تشغيل 5.50 الخاص بهم يعمل بنجاح .
لقد حفرت في السجل تحت Windows 7 ، ووجدت أن هناك إدخالًا واحدًا على الأقل تم إجراؤه عندما أطلب وضع التوافق:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\
full-path REG_SZ WINXPSP3
يجب أن أكون قادرًا على إضافة هذا المفتاح من المثبت الخاص بنا ، قبل محاولة إطلاق برنامج تشغيل برنامج التشغيل 5.50.
أسئلة:
- أين يمكنني العثور على مناقشة أكثر اكتمالا حول أوضاع التوافق؟
- هل المفاتيح/الإعدادات مختلفة تحت Vista مقابل Windows 7؟
- هل المفاتيح/الإعدادات مختلفة تحت 32 بت مقابل 64 بت؟
- هل هناك طريقة لطلب هذا بشكل مباشر عندما أدعو CreateProcess ()؟
المحلول
يمكنك تعيين ملف __compat_layer متغير البيئة (من خلال تعيينها في عمليتك قبل استدعاء CreateProcess ، أو بناء كتلة بيئة جديدة للمعالجة المبدعة)