我有一些当前存储在HKEY_LOCAL_MACHINE中的程序设置.由于Vista和锁定用户,一些用户没有HKEY_LOCAL_MACHINE的权限,这些值也不属于HKEY_LOCAL_USER(对于所有用户必须是相同的),存储这些值的最佳替代位置是什么?
大多数设置已存储在数据库中,但在连接到数据库之前,程序需要了解一些设置.理想情况下,我想要一种实现这一点的方法,而无需检查正在运行的操作系统.
这是用Delphi编写的桌面应用程序.
我需要通过Win8在WinXP中读取和写入配置文件到Windows磁盘.他们最适合这样做的地方在哪里?看起来似乎不允许ProgramData文件夹
procedure TfrmMain.FormCreate(Sender: TObject);
var
path: array[0..MAX_PATH] of char;
begin
SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, SHGFP_TYPE_CURRENT, @path);
AppPath:= Path;
AppPath:= AppPath + '\Customer\';
if not DirectoryExists(AppPath) then
CreateDir(AppPath);
if FileExists(AppPath + 'Customers.cst') then
LoadFromFile(AppPath + 'Customers.cst');
end;
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if ListModified then
begin
if MessageDlg('Save Changes?', mtWarning, [mbYes, mbNo], 0) = mrYes then
SaveToFile(AppPath + 'Customers.cst');
canClose:= True;
end
else
canClose:= False;
end;
Run Code Online (Sandbox Code Playgroud)