0

我正在尝试使用函数SetNamedSecurityInfo() 为注册表项设置自由访问控制列表(DACL)

pObjectName如果我要设置注册表项,我不确定该函数的第一个参数应该是什么?我也不确定这个字符串的格式,即,对于当前用户,我使用HKEY_CURRENT_USER\orCURRENT_USER吗?

对于注册表项,对象名称只是注册表项的路径还是其他内容?

例如:

LPTSTR pObjectName = _T("HKEY_CURRENT_USER\\Software\\MyAppName");
// or should it be...
LPTSTR pObjectName = _T("CURRENT_USER\\Software\\MyAppName");
4

1 回答 1

2

阅读以下文档SetNamedSecurityInfo()

有关不同对象类型的字符串格式的描述,请参阅SE_OBJECT_TYPE

.

SE_REGISTRY_KEY 表示注册表项。注册表项对象可以位于本地注册表中,例如 CLASSES_ROOT\SomePath,也可以位于远程注册表中,例如 \ComputerName\CLASSES_ROOT\SomePath。

注册表项的名称必须使用以下文字字符串来标识预定义的注册表项:“CLASSES_ROOT”、“CURRENT_USER”、“MACHINE”和“USERS”。

所以你的问题的答案是这样的:

LPTSTR pObjectName = _T("CURRENT_USER\\Software\\MyAppName");
于 2013-04-06T02:01:40.943 回答