【问题标题】:how do I launch another process in XP compatibility mode?如何在 XP 兼容模式下启动另一个进程?
【发布时间】:2011-01-09 06:05:37
【问题描述】:

我们的应用程序需要安装 HASP SRM 设备驱动程序才能安装和运行。

目前,只有他们的 5.50 驱动程序在所有测试平台上始终如一地工作(他们的 5.75(官方)和 5.86(测试版)驱动程序在大约三分之一的测试计算机上崩溃)。

因此,他们的 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() 时直接询问这个?

【问题讨论】:

    标签: winapi windows-7 windows-vista installation createprocess


    【解决方案1】:

    您可以设置__COMPAT_LAYER环境变量(通过在调用CreateProcess之前在您的进程中设置它,或者为CreateProcess构建一个新的环境块)

    【讨论】:

    • 这看起来很有希望。如果我能做到这一点,我会给你答案。 ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2015-03-22
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多