1

System32およびsyswow64フォルダーは、64ビットOSの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ビットOSでは、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ビットOSで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

ArchitecturesInstallIn64BitModeをに設定しない限り、InnoSetupはインストールを32ビットモードで実行しますx64

を使用して64ビットファイルにアクセスする場合は{sys}、その値を設定する必要があります。

ドキュメント{sys}の見出しの下に詳細な説明があります。

于 2013-01-21T11:44:53.690 に答える