在哪里可以使用任何帐户在Windows Vista上写入数据,并且可以从所有其他帐户查看?

时间:2008-10-30 14:45:39

标签: windows-vista uac

我需要写一些注册数据(唯一的计算机编号和相应的激活码)。

需要在其他程序和所有帐户中显示计算机编号({Admin | Non Admin},用户访问控制已开启{On | Off})

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

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

2 个答案:

答案 0 :(得分:3)

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

或者您可以使用“所有用户应用程序数据”文件夹。在XP中,通常会映射到C:\Documents and Settings\All Users\Application Data\YourApp\。我没有Vista在我面前,所以我暂时无法给你确切的位置,但它应该是一个非常简单的映射。

答案 1 :(得分:3)

返回的位置

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

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

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