この問題を調査しているうちに、this質問がありました。私はプログラムがすでに管理者として実行されており、既にTRegistry.Create(KEY_READ)
を使用してレジストリにアクセスしているという同じ問題を受けています。Delphi 32ビットアプリケーションWindows 7のWow64の32ビットインストーラで作成されたレジストリキーが見つかりません
私がアクセスしようとしているキーはHKLM\Software\FireBird Project\Firebird Server\Instances
です。私がそれを理解する方法(私が間違っていると私を訂正する方法)は、レジストリリダイレクタが、明示的に無効にされていない限り、HKLM \ Softwareを読み書きする任意の32ビットプロセスに対してデフォルトで有効になっていることです。
このキーでこのケースかどうかを判断する方法はありますか?私はwin32 firebirdインストーラのソースを見てきましたが、何も出ていません。
更新
!@#$%の
は、それがすべてに沿って鍵を見つけることであったが。私はファイアバードデータベースを作成できるように、このキーを使ってisqlユーティリティを探していました。これは、db接続のBeforeConnect
イベントで発生していました。何らかの理由で接続が試行され、イベントがトリガーされる前に例外が発生したので、データベースは決して作成されませんでした。自己への注意:Before *イベントが何かの前に起こることは絶対に信じてはいけません。
regeditでレジストリを調べる場合、 'Software'または' Software \ Wow6432Node'の下のキーですか? – Blorgbeard
'Software \ Wow6432Node' –
Huh。 'KEY_WOW64_32KEY'を明示的に指定してみてください。 – Blorgbeard