日期:2014-05-17  浏览次数:20899 次

C#做的LocalSystem服务无法访问HKEY_CURRENT_USER问题
自己用C#做了一个服务,服务设定帐号为LocalSystem,但是这样的帐号无法访问注册表中的HKEY_CURRENT_USER键值,
网上找了写资料,说HKEY_CURRENT_USER是需要登录的用户才可访问,LocalSystem不可访问,除非模拟用户登录,然后才能访问HKEY_CURRENT_USER,但我不知道怎样用c#模拟用户登录。请高手指点。

------解决方案--------------------
如果非要模拟登陆用户, 可以试试:
http://msdn.microsoft.com/en-us/library/ff647404.aspx
里头介绍的方式.

但是, 用 LocalSystem 的话, 最好就不要访问 HKCU 了
------解决方案--------------------
HKEY_CURRENT_USER的中文叫“当前用户”,它是HKEY_USERS下某一项的镜像,是会根据当前用户改变的。
Assembly code
看看HKEY_USERS
.Default
.s-1-5-18
 ...
.s-1-5-21-{guid1}   //<--
.s-1-5-21-{guid2}   //<--
.s-1-5-21-{guid3}   //<--