?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

长沙麻将下载:宝运莱pt1618电脑版:在Win2k下操作有权限限制的注册表键

?

长沙转转麻将必胜口诀 www.fv7j.com.cn 在2k系统操作注册表时,发明某些健必须要有权限问题;

不雅察各位大年夜大年夜的贴,可惜没有一个相宜的结果;

有人说:可以前进应用者权限;然则事实上似乎不是很好用;

颠末困难.困难.艰困难苦;终于在msdn上找到了一些好动动;

不敢独享,(哎,我可不想某人,好器械藏到自己都忘了的地方)

收拾出来一些对某些人有用的器械:嘿嘿,代码如下:

严重修议:大年夜家都把好器械往上贴吧!!!!!!

迎接来信探究: [email protected]

//开始从新设置设置设备摆设摆设应用注册表的权限------------------------------------------------

LPTSTR lpObjectName;

SE_OBJECT_TYPE ObjectType;    //#include

PACL OldDACL,NewDACL;

PSECURITY_DESCRIPTOR SD;

EXPLICIT_ACCESS ea;

lpObjectName = "MACHINE\\SYSTEM\\ControlSet001\\Enum\\Root";

ObjectType =SE_REGISTRY_KEY;

//建立一个空的ACL;

if (SetEntriesInAcl(0, NULL, NULL, &OldDACL)!=ERROR_SUCCESS)

return;

if (SetEntriesInAcl(0, NULL, NULL, &NewDACL)!=ERROR_SUCCESS)

return;

//获取现有的ACL列表到OldDACL

if(GetNamedSecurityInfo(lpObjectName, ObjectType,

DACL_SECURITY_INFORMATION,

NULL, NULL,

&OldDACL,

NULL, &SD) != ERROR_SUCCESS)

Application->Me宝运莱pt1618电脑版ssageBox("指定的键不存在!","提示",MB_OK);

//设置用户名"Everyone"对指定的键有所有操作权到布局ea

ZeroMemory(&ea, sizeof(EXPLICIT_ACCESS));

BuildExplicitAccessWithName(&ea,

"Everyone",   // name of trustee宝运莱pt1618电脑版

GENERIC_ALL,   // type of access

SET_ACCESS,   // access mode

SUB_CONTAINERS_AND_OBJECTS_INHERIT); //让自健承袭他的权限; inheritance mode

//合并布局ea和OldDACL的权限列表到新的NewDACL

if(SetEntriesInAcl(1, &ea, NULL, &NewDACL) != ERROR_SUCC宝运莱pt1618电脑版ESS)

goto Cleanup;

//把新的ACL写入到指定的键

SetNamedSecurityInfo(lpObjectName, ObjectType,宝运莱pt1618电脑版

DACL_SECURITY_INFORMATION,

NULL, NULL,

NewDACL,

NULL);

///////开始操作注册表//////////////////////////////////////////////////////////

//...................................................

////////////////////////////////////////////////////////////////////////////

//规复注册表的权限;

BuildExplicitAccessWithName(&ea,

"Everyone",   // name of trustee

GENERIC_READ,   // type of access

SET_ACCESS,   // access mode

NO_INHERITANCE); //让自健承袭他的权限; inheritance mode

if(SetEntriesInAcl(1, &ea, NULL, &OldDACL) != ERROR_SUCCESS)

goto Cleanup;

//把旧的ACL写入到指定的键

SetNamedSecurityInfo(lpObjectName, ObjectType,

DACL_SECURITY_INFORMATION,

NULL, NUL宝运莱pt1618电脑版L,

OldDACL,

NULL);

//开释指针

Cleanup:

if(SD != NULL)

LocalFree((HLOCAL) SD);

if(NewDACL != NULL)

LocalFree((HLOCAL) NewDACL);

if(OldDACL != NULL)

LocalFree((HLOCAL) OldDACL);

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: