Windows でレジストリ キーを非表示にする方法があると聞きましたが、それが何であるか思い出せません。セキュリティ マネージャーに関連している可能性があります。
私がしたいのは、ユーザーが私のソフトウェア アクティベーション キーをレジストリからコピーし、ソフトウェアを非アクティブ化し、古いキーを元の場所にコピーして再アクティブ化することを防止することです。
つまり、(管理者であると仮定して)ユーザーから何かを隠すことはできませんが、それをより困難にすることはできます。
Win32 APIではなく、ネイティブAPIを使用してレジストリキーを「非表示」にしてレジストリにアクセスできます。これは事実上、ユーザーがRegEditを使用してレジストリキーを削除または再作成できないことを意味します。ネイティブAPIの使用にも頼る必要があります。
この記事では、ネイティブAPIと、非表示のレジストリキー(キー名に埋め込みnullを使用)について説明します。SysinternalsのRegHideツールを使用すると、レジストリキーを非表示にでき、RegDelNullツールを使用してそれらを削除できます。
しかし、繰り返しになりますが、機知に富んだ人はまだこれを回避することができます。それがまだ有効であることを確認する唯一の方法は、サードパーティ(管理しているWebサービスなど)にライセンスがまだ有効であることを定期的に確認させることです。
私が知っている唯一の解決策は、レジストリの保護された部分に保存されているGPOを使用することです