4

我需要写一些注册数据(唯一的电脑号,和对应的激活码)。

计算机编号需要从其他程序和所有帐户中可见({Admin|Non Admin} 用户访问控制已打开 {On|Off} )

仅从管理员帐户写入计算机编号和激活码是可以接受的,但它需要可从任何其他帐户读取。

目前(我需要对此进行更多测试)似乎如果 CN 和激活码是在关闭 UAC 的情况下写入的,那么当用户打开 UAC 时,计算机编号是不可见的。

4

2 回答 2

3

在安装期间,您可以将其写入程序的安装文件夹,因为以后可能不会更改(需要写入权限)。作为标准用户,您仍然应该具有读取权限。不然怎么运行程序?:)

或者,您可以使用 All Users Application Data 文件夹。在 XP 中,这通常会映射到C:\Documents and Settings\All Users\Application Data\YourApp\. 我面前没有Vista,所以我现在不能给你确切的位置,但它应该是一个非常简单的映射。

于 2008-10-30T14:48:31.777 回答
3

返回的位置

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

这与 Joel 在他的消息中提到的位置相同,但这是获取该值的正确方法(它在 XP 和 Vista 之间更改了位置,并且可能会再次更改)。

(当然,这是针对 .NET 的。对于 Win32,您希望使用SHGetFolderPath带有 CSIDL_COMMON_APPDATA 的函数)

于 2008-10-30T14:58:26.250 回答