修改注册表权限
1
uses aclapi,AccCtrl;
2![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/dot.gif)
3
var
4
lpObjectName:LPTSTR;
5
OldDACL,NewDACL:PACL ; //uses aclapi
6
ObjectType:SE_OBJECT_TYPE ; //uses AccCtrl
7
SD:PSECURITY_DESCRIPTOR;
8
ea: EXPLICIT_ACCESS;
9
label Cleanup;
10
begin
11
lpObjectName := 'MACHINE\\SYSTEM\\ControlSet001\\Enum\\Root';
12![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
// ObjectType :=SE_REGISTRY_KEY;
14![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
//建立一个空的ACL;
16
if SetEntriesInAcl(0, nil, nil, OldDACL)<>ERROR_SUCCESS then
17
exit;
18![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
if (SetEntriesInAcl(0, nil, nil, NewDACL)<>ERROR_SUCCESS) then
20
exit;
21![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
22
//获取现有的ACL列表到OldDACL
23
if GetNamedSecurityInfo(lpObjectName, ObjectType,
24
DACL_SECURITY_INFORMATION,
25
nil, nil,
26
OldDACL,
27
nil, SD) <> ERROR_SUCCESS then
28
Application.MessageBox('指定的键不存在!','提示',MB_OK);
29![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
30
//设置用户名"Everyone"对指定的键有所有操作权到结构ea
31
ZeroMemory(@ea, sizeof(EXPLICIT_ACCESS));
32![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
BuildExplicitAccessWithName(@ea,
34
'Everyone', // name of trustee
35
GENERIC_ALL, // type of access
36
SET_ACCESS, // access mode
37
SUB_CONTAINERS_AND_OBJECTS_INHERIT); //让自健继承他的权限; inheritance mode
38
39
//合并结构ea和OldDACL的权限列表到新的NewDACL
40
if SetEntriesInAcl(1, @ea, nil, NewDACL) <> ERROR_SUCCESS then
41
goto Cleanup;
42![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
43
//把新的ACL写入到指定的键
44
SetNamedSecurityInfo(lpObjectName, ObjectType,
45
DACL_SECURITY_INFORMATION,
46
nil, nil,
47
NewDACL,
48
nil);
49![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
50![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
///////开始操作注册表//////////
52
//恢复注册表的权限;
53![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
54
BuildExplicitAccessWithName(@ea,
55
'Everyone', // name of trustee
56
GENERIC_READ, // type of access
57
SET_ACCESS, // access mode
58
NO_INHERITANCE); //让自健继承他的权限; inheritance mode
59![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
60
if SetEntriesInAcl(1, @ea, nil, OldDACL) <> ERROR_SUCCESS then
61
goto Cleanup;
62![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
63
//把旧的ACL写入到指定的键
64
SetNamedSecurityInfo(lpObjectName, ObjectType,
65
DACL_SECURITY_INFORMATION,
66
nil, nil,
67
OldDACL,
68
nil);
69![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
70
//释放指针
71
Cleanup:
72
if SD <> nil then
73
LocalFree(HLOCAL (SD));
74
if NewDACL <> nil then
75
LocalFree(HLOCAL (NewDACL));
76
if OldDACL <> nil then
77
LocalFree(HLOCAL( OldDACL));
78![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
以下为代码运行前后的对比图片.![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/dot.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
设置权限以前注册表的权限.
设置权限后未恢复的注册表权限