欺骗旧的 Windows 程序在较新的 Windows 上安装

Mad*_*ght 4 windows-7 installation windows-10

我一直在尝试在 Windows 10 上安装一个使用 Acer 触摸屏的应用程序。无论出于何种原因,程序开发人员决定强制它只能在 Windows 7 上安装。即使您在兼容模式下运行它,它也会发送一个错误说它只为 Windows 7 设计。我觉得它可能会安装在 Windows 10 上,但我无法超越安全性。我需要的是一种诱使安装程序认为我正在运行 Windows 7 的方法。

Mad*_*ght 5

我环顾其他地方,找不到好的解决方案,但最终想出了一个部分解决方案,我想发布以供其他人使用。

注意:应用此解决方案的风险由您自己承担。

我的解决方案是在 Windows 注册表中编辑操作系统的名称。在编辑注册表之前,您需要确保复制注册表项的确切详细信息,然后再覆盖它。(为了以防万一,备份您的注册表也可能是一个好主意。)

要查找操作系统名称的当前 Windows 注册表项的详细信息,请将以下详细信息复制到文本文件中:

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
pause
Run Code Online (Sandbox Code Playgroud)

在文本文件中输入详细信息后,保存它,将文件的扩展名更改为 .bat,然后运行该文件。

应该会出现一个黑色的命令提示符窗口,如下所示:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    ProductName    REG_SZ    Windows 10 Pro
Run Code Online (Sandbox Code Playgroud)

确保准确复制这些详细信息。您将需要它们来将您的注册表恢复到原始状态。

现在,我们需要创建将编辑注册表项的文件。我的示例适用于 Windows 7,但我相信您可以用同样的方法模拟不同的操作系统。将以下内容复制到文本文件中:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName" /t REG_SZ /d "Windows 10 Pro" /f
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
pause
Run Code Online (Sandbox Code Playgroud)

第二行不是必需的,但会帮助您确定编辑是否成功。将以上内容复制成文本文件后,保存,将扩展名改为.bat,然后在批处理文件上右键选择“以管理员身份运行”。如果您成功了,您应该会看到它显示您当前的版本为“Windows 7 Pro”或您设置的任何版本。

现在您可以继续尝试运行您的安装程序。就我而言,执行上述操作使我能够克服安装程序中的第一个安全问题。不幸的是,有第二个安全机制以某种方式认为我没有支持的显示器,所以我最终放弃了让程序工作。也就是说,我认为上面的代码对于检查它们运行在哪个操作系统上的过于谨慎的程序仍然可能有用。

完成后,您需要确保将注册表设置回原来的状态。就我而言,我通过将以下代码复制到文本文件中来重新设置它:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName" /t REG_SZ /d "Windows 10 Pro" /f
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
pause
Run Code Online (Sandbox Code Playgroud)

然后,您需要保存文本文件,将其扩展名更改为 .bat,右键单击批处理文件,然后单击“以管理员身份运行”。

如果成功,黑色命令提示符窗口应显示您的原始操作系统名称。

  • 仅仅因为某些东西会引起麻烦,并不意味着它不可能有用。它没有解决我的问题,因为我没有足够的时间进一步研究它。也就是说,我想发布这个是因为它可以帮助其他人解决类似的情况。 (2认同)