1


0

Windows 7レジストリを使用してユーザー間でデータを共有する

XPで作成されたプログラムがあります。 私が見つけたのは、HLKMが非管理者によって書き込み可能でなくなったため、Win7では正常に動作しないことです。

基本的に、プログラムを登録すると、ライセンス情報はレジストリに登録されます。 その情報は、1人のユーザーだけでなく、コンピューター上の全員に有効なので、HKCUに入れたくありません。 ただし、Webサーバーから更新されたライセンス情報を取得しようとする特定の状況があるため(たとえば、レジストリデータが失われたか破損している場合、または現在のライセンスの有効期限が切れており、拡張機能を適用したかどうかを確認する必要がある場合)。

プログラムを起動するすべての一意のユーザーのWebサーバーに送信されるのは恐ろしいことではありませんが、いくつかの迷惑な問題が発生するため、XPの場合と同じように動作し続けたいと思います。 レジストリにデータを保存し、Win7でデータを共有する方法はありますか、それともドライブにINIファイルを保存し始める必要がありますか?

2 回答


1


これが私がどのように設計するかです:あなたのセットアップは昇格して実行され、キーをセットアップします。 その後、ライセンスが破損した場合など、「ライセンスの修正」や「ライセンスの更新」などのテキストを含むボタンまたはメニュー項目を有効にします。 そのボタンまたはメニュー項目にシールドを配置します。 ユーザーがクリックすると、ShellExecuteを使用して別のexeを起動します。 そのexeには、昇格が必要なマニフェストがあります。 その後、レジストリの保護された領域に書き込むことができます。 アプリの残りは、asInvokerでマニフェストを持つことができます。

完全に見えないようにしたい場合は、アプリ全体を常に昇格(迷惑)で実行するか、アプリが警告なしで昇格を要求する別のexeを起動する必要があります-この場合、スマートユーザーはnoと言います。 少し不可視であることは良いことです。


0


レジストリの特定の領域を誰でも書き込み可能にするインストーラーを入手できますか? とにかく、インストーラーは昇格された特権で実行する必要があると思います。したがって、これは理想的なアプローチのように思えます。