Windows服务操作注册表问题

gxtdjh2 2010-08-23 08:46:22
写了个Widnows服务操作注册表的测试。
在onStart里面写如下语句


protected override void OnStart(string[] args)
{
RegistryKey key = Registry.CurrentUser;
RegistryKey soft =
key.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\UserAssist\\{75048700-EF1F- 11D0-9888-006097DEACF9}\\Count", false);
File.WriteAllText(@"d:\msg.txt", soft.Name);
}
但这样总是出错,try,catch测试,soft是空的,但我另外用应用程序测试时OK的,所以我怀疑是服务程序和注册表之间操作的问题,但就是不知道问题出在哪,服务的Accout是Local System。请高手指教....谢谢……
...全文
186 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxtdjh2 2010-08-25
  • 打赏
  • 举报
回复
有没有知道啊,我怎样C#服务的方式,模拟用户登录,访问到HKEY_CURRENT_USER下的键值,请高手帮个忙啊!
jointan 2010-08-24
  • 打赏
  • 举报
回复
在LocalSystem登录后,CurrentUser保存在HKEY_USERS\.DEFAULT项下面,你用Administrator登录后看到的CurrentUser和LocalSystem登录后看到的CurrentUser是不同的

CurrentUser就是当前用户的意思.
gxtdjh2 2010-08-24
  • 打赏
  • 举报
回复
子项是存在的啊,我用控制台程序测试,及可以得到我想要的结果,楼上可以把测试成功的工程发我一份吗?我看看到底哪出问题了,gxt2207@163.com,万分谢谢……
gxtdjh2 2010-08-24
  • 打赏
  • 举报
回复
1. LocalSystem立场,我需要读已登录用户的HKEY_CURRENT_USER的值,不针对哪一个特定用户,网上查了写资料,有的说让我模拟用户登录,然后访问HKEY_CURRENT_USER下的键值。不知道怎么模拟,还有其他办法吗?
2. 目前服务的Account设置成LocalSystem会产生以上问题,如果把Account设置成NetworkService或者User也会访问不了HKEY_CURRENT_USER。

不管用什么方式,我现在的服务只要访问到HKEY_CURRENT_USER下的键就可以了。

jointan 2010-08-24
  • 打赏
  • 举报
回复
这个真不知道,而且不太明白你的意思,站在LocalSystem的立场上,你要读哪个用户的值,是已登录用户?还是具体哪一个用户?这些私人配置都在HKEY_USERS项下保存着,谁登录了,HKEY_CURRENT_USER就会映射到HKEY_USERS中属于它的某一个子项上.

描述清你的想法,也许还有别人能帮你.
gxtdjh2 2010-08-24
  • 打赏
  • 举报
回复
jointan,谢谢你的回答,我测试了下,是读的HKEY_USERS\.DEFAULT项,那我要怎么才能读到HKEY_CURRENT_USER里的值啊!HKEY_USERS\.DEFAULT里面没有我需要的键值。我登陆的账户
有管理员权限。。。。我需要怎么设置和更改,请jointan指教......
jointan 2010-08-23
  • 打赏
  • 举报
回复
我刚弄了个WindowsService,试了下你那段代码,只要项存在,就没问题
你的原因就是项不存在造成的
jointan 2010-08-23
  • 打赏
  • 举报
回复
是不是LocalSystem不能读取Registry.CurrentUser啊
gxtdjh2 2010-08-23
  • 打赏
  • 举报
回复
键值是存在的,我用同样的代码,在Windows控制台上测试通过。就是做成服务有问题。
wuyq11 2010-08-23
  • 打赏
  • 举报
回复
判断键值是否存在 null
gxtdjh2 2010-08-23
  • 打赏
  • 举报
回复
下面一句key.OpenSubKey操作得来的啊
jointan 2010-08-23
  • 打赏
  • 举报
回复
不知你的soft是从哪来的

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧