如何在64位操作系统中重命名system32文件



64位操作系统C:Windows下存在System32和syswow64文件夹。

我在System32drivers文件夹下有一个名为xyz.sys的文件。我尝试使用以下代码将xyz.sys重命名为xyz1.sys:

if FileExists(ExpandConstant('{sys}driversxyz.sys')) then
  RenameFile(ExpandConstant('{sys}driversxyz.sys'), ExpandConstant('{sys}driversxyz1.sys'));

但是在64位操作系统中,innosetup将{sys}='Driveletter:Windowssyswow64'作为默认值

甚至我尝试在下面的代码下重命名xyz.sys文件System32drivers:

if FileExists(ExpandConstant('{win}System32driversxyz.sys')) then
  RenameFile(ExpandConstant('{win}System32driversxyz.sys'), ExpandConstant('{win}System32driversxyz1.sys'));

但是上面的代码也不工作,谁能建议我如何在64位操作系统中重命名system32文件?

默认情况下,32位应用程序(以及32位应用程序的安装程序)只能访问32位系统文件夹。例如,如果您需要为32位应用程序安装特定的64位文件,则可以在各种条目上使用64bit标志来覆盖此设置。

您可以通过使用EnableFsRedirection支持函数从[Code]做同样的事情。该帮助页面显示了执行64位命令提示符的示例;您可以类似地从该块中访问64位{sys}。之后不要忘记恢复以前的状态,如图所示。

请记住,重命名已安装的驱动程序文件通常不是一个好主意——目录和INF文件仍然指向它的旧名称,系统可能会因此而困惑。最好是正确卸载驱动程序并重新安装新驱动程序。

InnoSetup以32位模式运行安装,除非您将ArchitecturesInstallIn64BitMode设置为x64

如果您想使用{sys}访问64位文件,您应该设置该值。

文档{sys}标题下的更多说明

相关内容

  • 没有找到相关文章

最新更新