4

いくつかの登録データ (一意のコンピューター番号と対応するアクティベーション コード) を書き込む必要があります。

コンピューター番号は、他のプログラムとすべてのアカウント (ユーザー アクセス制御が {On|Off} になっている {Admin|Non Admin})から見えるようにする必要があります。

コンピューター番号とアクティベーション コードは、管理者アカウントからのみ書き込むことができますが、他のアカウントから読み取り可能である必要があります。

現在 (さらにテストする必要があります)、CN とアクティベーション コードが UAC をオフにして書き込まれている場合、ユーザーが UAC をオンにすると、コンピューター番号が表示されないようです。

4

2 に答える 2

3

によって返された場所

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

これは Joel がメッセージで言及したのと同じ場所ですが、これがその値を取得する適切な方法です (XP と Vista の間で場所が変更され、再度変更される可能性があります)。

SHGetFolderPath(これはもちろん.NETの場合です。Win32の場合はCSIDL_COMMON_APPDATAで関数を使いたいと思います)

于 2008-10-30T14:58:26.250 に答える
3

インストール時にプログラムのインストール フォルダーに書き込むことができます。そこには標準ユーザーとして引き続き読み取りアクセス権があるはずです。そうでなければ、どのようにプログラムを実行しますか? :)

または、All Users Application Data フォルダを使用できます。XP では、通常はC:\Documents and Settings\All Users\Application Data\YourApp\. 目の前に Vista がないので、現時点で正確な場所を示すことはできませんが、かなり単純なマッピングになるはずです。

于 2008-10-30T14:48:31.777 に答える