200分:VISTA、WIN7下如何用代码修改有权限的注册表项?
在VISTA、WIN7年代,有些注册表项是有权限的,且该项注册表的“所有者”是“TrustedInstaller”,这类注册表项我想用代码修改它。
比如HKEY_CLASSES_ROOT\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32这个项目。
终极目标是用代码修改该项的值。目前最高只能给200分,若解决,另送1000分(呵呵,开玩笑了,高手一般不怎么在乎分的……)
以上是问题描述,主要是担心“问题描述不清楚”而言简意赅。
尝试过chenhui530的代码:
http://blog.csdn.net/chenhui530/archive/2007/10/03/1810302.aspx
可当result = SetNamedSecurityInfo(RegPath, SE_REGISTRY_KEY, DACL_SECURITY_INFORMATION, 0&, 0&, pNewDACL, 0&)
的时候总是不成功。
现在手边没VISTA,记得在VISTA下的时候,若用手动将该项的所有者修改为administrators后用该代码是可以成功的,但也需要这个手动操作(印象中是这样的),但在WIN7下,即使手动修改所有者也不能修改。那么似乎就还有UAC在作祟了……
总之,希望用代码修改该项的值。
[解决办法]
vista/win7我现在自己不用只有在写得程序涉及到的时候才去看,而且一般是看内核结构。
但是如果该键只属于TrustedInstaller,如果还有其他用户可以访问那倒简单只需要把其他用户的权限提高而已,不需要自己再创建一个everyone然后再设置权限了。可以变通的解决一下。
[解决办法]
顶了.....................
[解决办法]
呵呵...............对这个不是很了解......顶,解决了我也要........
[解决办法]
是否可以如此做,将你修改注册表的EXE以管理员权限运行.
[解决办法]
帮顶
[解决办法]
TrustedInstaller是一个虚拟账户,比Administrator权限要大,但并非是最高权限账户,System才是。
想办法提升权限到 TrustedInstaller 级别.
[解决办法]
帮顶吧。。。。。。。。
[解决办法]
瞎说一句:
是不是要将你的可执行程序默认的执行权限提高?