как запустить другой процесс в режиме совместимости с XP?

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

Вопрос

Для того чтобы наше приложение могло установиться и запуститься, необходимо установить драйвер устройства 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 и в Vista?Windows 7?
  • Отличаются ли клавиши/настройки в 32-битной версии и в 32-битной версии?64 бит?
  • Есть ли способ напрямую спросить об этом, когда я вызываю CreateProcess()?
Это было полезно?

Решение

Вы можете установить __COMPAT_LAYER переменная среды (установив ее в своем процессе перед вызовом CreateProcess или создав новый блок среды для CreateProcess)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top