0

簡単に言えば、バイナリ .dat ファイルにある 2 つのレジストリ ハイブの差分を作成しようとしています。

RegLoadAppKey を使用してハイブをマウントした後、すべてのキーとその値を再帰する最良の方法は何ですか?

私は RegEnumKeyEx を見ましたが、それは RegLoadAppKey によって返されたルート ノードのサブ キーを反復処理することしかできず、(私の知る限り) サブ キーへのハンドルを返しません。

また、RegLoadAppKey を使用している理由は、このミニ アプリを管理者権限なしで実行できる必要があるためです。

4

1 に答える 1

2

濡れた毛布にならない

RegLoadAppKey の MSDN ドキュメントから http://msdn.microsoft.com/en-us/library/windows/desktop/ms724886(v=vs.85).aspx

RegLoadKey とは異なり、RegLoadAppKey は HKEY_LOCAL_MACHINE または HKEY_USERS の下のハイブをロードしません。代わりに、ハイブは 列挙できない特別なルートの下にロードされます。その結果、RegLoadAppKey によって現在読み込まれているハイブを列挙する方法はありません。

さらに、回避しようとしているセキュリティ設定の一部で障害が発生する可能性があります。

ハイブ内のすべてのキーには同じセキュリティ記述子が必要です。そうでない場合、関数は失敗します。このセキュリティ記述子は、呼び出し元に samDesired パラメータで指定されたアクセスを許可する必要があります。許可しないと、関数は失敗します。ハイブ内のキーに対して RegSetKeySecurity 関数を使用することはできません。

于 2013-06-19T15:28:04.347 に答える