2017-10-04 12 views
0

レジストリを幅広く使用する32ビットのWindowsアプリケーションがあります。とりわけ、ユーザー名/機関とライセンスキーをレジストリに格納します。一部のユーザーは、そのデータをインストーラに入力する際に​​問題があるようです。それらのために私たちは関連情報を.regファイルで提供しましたが、これは32ビットアプリケーションがデータを見ることができないという点で、64ビットWindows 7(と私は仮定します)の下で問題を引き起こします。私はregeditの32ビットバージョンを使用することを望んでいましたが、バッチファイル内でそれを見つけるための移植可能な方法はないようです。誰にも何か提案はありますか?ソリューションに失敗した場合、私はキーと値を作成する32ビットアプリケーションを書くことができます:OSは、32ビットアプリケーションと同じ場所にデータを配置する必要があります。それらを見つけるでしょうが、.regファイルが望ましいでしょう。32ビットおよび64ビットWindows用のポータブル.regファイル?

私は、Windows 7(64ビット)がHKEY_LOCAL_MACHINE/Software/Wow6432Nodeの下にエントリを保存することに気付きました。私はこれを.regファイル(regeditを使用)で指定しようとしましたが、アプリケーションはキー/値のいずれかを見つけることができませんでした(HKEY_LOCAL_MACHINE/Software/HKEY_LOCAL_MACHINE/Software/Wow6432Node /移植可能な努力)。

答えて

0

Windowsは、for having separate settings for 32 and 64 bits programsSystem32SysWOW64フォルダの場合と同様)のWindowsの64ビットバージョンの32ビットアプリケーション用のレジストリキーを自動的にリダイレクトします。たとえば、HKEY_LOCAL_MACHINE/Software/App Nameを要求する32ビットアプリケーションは、HKEY_LOCAL_MACHINE/Software/WOW6432Node/App Nameにリダイレクトされます(そのリダイレクトは、アプリケーションには透過的です。その観点から、アクセスはHKEY_LOCAL_MACHINE/Software/App Nameです)。

.regファイルを直接使用しており、レジストリエディタが64ビットWindowsの64ビットアプリケーションであるため、リダイレクトは行われず、これらのキーはレジストリの64ビット部分に書き込まれます。

また、HKEY_LOCAL_MACHINE/Software/WOW6432Node/WOW6432Nodeにリダイレクトされるため、32ビットプログラムがHKEY_LOCAL_MACHINE/Software/WOW6432Nodeを見つけられない理由があります。

あなたの提案されたソリューションの両方が動作するはずです:

  • リダイレクトはデフォルトで行われますので、動作するキーを作成するための32ビットのアプリを使用します。

  • 両方のキーを作成すると、別の「ガベージ」キーが必要になります。32ビットWindowsでは通常のキーが使用され、64ビットWindowsでは、アプリケーションはWOW6432Nodeにリダイレクトされます。 WOW6432NodeはWindowsの32ビットバージョンでは使用されていないため(イベントは存在しないため)、問題ではありません。

関連する問題