1

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

xyz.sys我在文件夹下有一个文件System32\drivers。我尝试重命名xyz.sysxyz1.sys使用以下代码:

if FileExists(ExpandConstant('{sys}\drivers\xyz.sys')) then
  RenameFile(ExpandConstant('{sys}\drivers\xyz.sys'), ExpandConstant('{sys}\drivers\xyz1.sys'));

但在 64 位操作系统中,innosetup 是{sys}='Driveletter:\Windows\syswow64'默认设置。

即使我尝试下面的代码来重命名xyz.sys文件System32\drivers

if FileExists(ExpandConstant('{win}\System32\drivers\xyz.sys')) then
  RenameFile(ExpandConstant('{win}\System32\drivers\xyz.sys'), ExpandConstant('{win}\System32\drivers\xyz1.sys'));

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

我正在使用windows2008R2。

4

2 回答 2

1

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

[Code]您可以使用EnableFsRedirection支持功能执行相同的操作。该帮助页面显示了执行 64 位命令提示符的示例;{sys}您可以类似地从该块中访问 64 位。之后别忘了恢复之前的状态,如图。

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

于 2013-01-22T19:49:51.323 回答
0

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

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

文档{sys}标题下的更多解释。

于 2013-01-21T11:44:53.690 回答