6

WiseInstallationStudioで記述された32ビットアプリケーションと32ビットインストーラーがあります。私は知っています...私はワイズを使うべきではなく、他のものに切り替えるべきです。しかし、今のところ、私はそれに固執しています。

私たちのアプリケーションはグラフィックを多用し、パフォーマンスを向上させるために、実行中にデスクトップ構成(Windows Aero)を無効にする必要があります。これは、32ビットシステムで次の場所にレジストリエントリを追加することで実現しました。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

の値はDISABLEDWM

これにより、EXEのプロパティの[互換性]タブにある[デスクトップコンポジションを無効にする]チェックボックスがデフォルトでオンになります。

これは32ビットシステムでは完全に機能しますが、64ビットシステムでインストーラーを実行すると、Windowsはレジストリエントリの作成をにリダイレクトしHKLM\SOFTWARE\Wow6432Node、フラグが正しく設定されません。64ビットレジストリビューで手動でエントリを作成すると、機能します。

では、32ビットインストーラーから64ビットレジストリビューでこのレジストリキーを強制的に作成するにはどうすればよいですか?または、レジストリエントリの作成とは別に、このプロパティを設定するためのより良い方法はありますか?

4

6 に答える 6

5

スクリプティングに関して Wise がどのような可能性を提供するかはわかりませんが、通常のプログラムから 64 ビット レジストリにアクセスする方法は、レジストリを操作するときにKEY_WOW64_64KEYを使用することです。

少なくともセットアップから外部 EXE ファイルを実行する可能性がある場合は、問題を解決する必要があります。

于 2012-03-19T15:08:39.460 に答える
4

この質問がされた時点でこの解決策が可能であったかどうかはわかりませんが、次のように、REG ADDコマンドを実行して/reg:64スイッチを含めるカスタム アクションを作成できます。

REG ADD "HKLM\Software\Example" /v "Name" /t REG_SZ /d "Data" /reg:64

スイッチにより、/reg:6464 ビット レジストリが強制されます。これが 32 ビット システムでどうなるかは完全にはわかりませんが、おそらく無視されると思います。

于 2016-05-04T10:39:59.140 に答える
0

通常、32 ビット アプリケーションから 64 ビット レジストリにアクセスすることはできません。WMI を介して 64 ビット レジストリにアクセスできるようにする PowerShell 用のコードを見つけました: http://gallery.technet.microsoft.com/scriptcenter/6062bbfc-53bf-4f92-994d-08f18c8324c0

ただし、これを Wise で使用できるかどうかはわかりません。代わりにWindows Installer XMLを使用して、64 ビット MSI を作成することができます。

于 2012-03-19T15:09:46.393 に答える
0

Reg.exe を使用してレジストリをクエリしても問題は解決しません。Wise によってバット ファイルが呼び出されたときに、reg クエリが 64 ビット キーを見つけることができないためです (32 ビット キーのみを見つけることができます)。

于 2013-08-15T05:41:10.377 に答える