怎样用程序方法对WINNT注册表某一受安全权限保护的KEY进行读写?(100分)

  • 主题发起人 主题发起人 rj
  • 开始时间 开始时间
R

rj

Unregistered / Unconfirmed
GUEST, unregistred user!
现在写一安装程序,须对NT注册表进行写操作。但NT注册表某一KEY受到权限保护,而不能对其下键值进行修改。请问怎样通过程序方法写入?希望能举例说明。
 
好象没办法. 关注.
 
肯定有办法,因另一安装程序则可以。
 
完成此功能可能与API函数RegSetKeySecurity()有关,但不知道该怎样用。
 
感兴趣。关注。
 
好象是这样的, 按文档, 应这样调用:<br>LONG RegSetKeySecurity( &nbsp;HKEY hKey, &nbsp;// open handle of key to set<br>&nbsp; SECURITY_INFORMATION SecurityInformation, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// descriptor contents<br>&nbsp; PSECURITY_DESCRIPTOR pSecurityDescriptor &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // address of descriptor for key<br>);<br><br>我的想法是: 先RegGetKeySecurity把SecurityInformation放到一临时变量中,<br>然后用RegSetKeySecurity更改此SecurityInformation, 用REGSETVALUE更改<br>后再RegSetKeySecurity恢复安全设置.<br><br>
 
请明确指示RegSetKeySecurity()参数的用法。我试过,好象所得到的值没有什么变化。
 
使用RegCreateKeyEx来打开注册表中一项。其中SECURITY_ATTRIBUTES 参数必需设置。这项参数中的LPVOID lpSecurityDescriptor由InitializeSecurityDescriptor来初始化,在由四个SetSecurityDescriptor...函数来设置lpSecurityDescriptor的值。
 
需要权限嘛。ADMIN权限一定可以
 
duz:请明确指示好吗?再给你100分。<br>比如说"HKEY_CURRENT_USER/Software"有权限保护,怎样运用你的指示。
 
你是指HKEY_LOCAL_MACHINE吧?在程序中读写是没有问题的,<br>但是用InstallShield,Wise没办法操作,我也遇到这个问题。<br>
 
要是可以手工的话<br>可以用 regedt32 来修改权限、审计等属性
 
HKEY_LOCAL_MACHINE中的run键值,用程序写入就不行.<br>大家可以试用注册表文本文件 *.reg来写入winnt.<br>*.reg文件可以用程序生成.<br><br>
 
多人接受答案了。
 
后退
顶部