07/02/27 00:32:42
MSが仕様だと言い張るので、Vistaのすばらしい機能を紹介します。
レジストリのHKEY_CURRENT_USERのキーを同一PC上のユーザにコピーする「機能」です。
(条件)
・実行ファイル名に"UPDATA"や"SETUP"などの文字を含む 例)MyUpdate.exe つまり、UACにひっかかるexeであること。
・そのexeにmanifestをつけないこと。あってもいいけど、実行権限を指定しなければok。
(方法)
・そのexeの中で、HKCUのキーを書き込むだけでそのキーが全ユーザにコピーされます。
・MFCアプリなら、CWinApp::GetProfileStringなどで、参照するだけでOK!ナイスすぎ。
しかも、書き込んだキーだけじゃなく、SetRegistryKeyで設定したグループ以下を
全部丸ごとコピーしてくれるから、とっても簡単!
通常は、会社名を設定するから、あなたの会社のソフトをまとめて面倒みてくれます。
microsoftをSetRegistryKeyにしたら・・・うは~
・書き込むって言ったけど、RegCreateKeyExをやっても、そのキーが丸ごとコピーされマス!
(ただし)
・すでにキーが設定されていれば、上書きはされません。
キーが空だった場合のみ,ほかのユーザのHKCUのキーが新規で追加されます。
でも、普通デフォルト設定はキーを空にするよね。
・コピーする内容がパスだった場合、ご親切にもパスのユーザー名の部分だけ置き換えてくれます。
たとえば、c:\User\papa\秘密.txt という文字列を書き込んだ場合は、ママのレジストリには
c:\User\mama\秘密.txt と置き換えてコピーしてくれるんです!開発者のことよく考えてくれるね~
このすごい機能は、RedirectHKCUKeysと言うらしいです。
これで、パパのクレジット番号だろうが、パスワードだろうが、ママがいちいち入力しなくても
親切にコピーしてくれるから、すごく便利だね!
一度おためしあれ。