首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除用户注销时的HKEY_CURRENT_USER值

删除用户注销时的HKEY_CURRENT_USER值
EN

Stack Overflow用户
提问于 2013-05-08 08:20:52
回答 1查看 3.8K关注 0票数 3

windows服务在HKEY_CURRENT_USER注册表项下为每个登录用户(通过调用ImpersonateLoggedOnUser()RegSetValueEx())创建一个注册表值(用于Excel外接程序)。当用户注销时,我需要删除这个注册表值,包括系统关闭。如果在注销时不删除该软件,并且该软件是由一个用户卸载的,则注册表中的条目将保留给在服务生存期期间登录的任何其他用户,这将导致每次Excel启动时都会显示一个消息框错误,因为它试图加载一个不再存在的外接程序。

审议了但拒绝了以下内容:

  • SetConsoleCtrlHandler(),因为没有迹象显示用户正在注销什么。
  • REG_OPTION_VOLATILE,因为它只有在创建键时才有效,而我只是在创建一个值(没有进行彻底的调查,所以即使我创建了一个键,也可能不是解决方案)。

是否有任何其他机制可以为这一问题提供解决办法?Windows版本有XP、Vista和7。

EN

回答 1

Stack Overflow用户

发布于 2013-05-08 23:36:24

一种更简单的方法是将删除该值的命令放入用户的RunOnce键中,例如,

代码语言:javascript
复制
 reg.exe delete HKCU\Software\xyzzy /v myvalue /f

以便在用户下次登录时删除不需要的值。但是,请注意,这可能会影响值的创建,这取决于您处理该值的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16435837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档