我再次使用Windows服务并尝试修改shell注册表项(HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon:Shell)。
最初,当SERVICE_CONTROL_STOP到达时,我尝试在ServiceControlHandler例程中执行此操作。通过启动/停止服务测试期间的工作已经登录了(我可以看到值已更改)。但是当我要关闭/重启系统时,值没有改变。
接下来,我尝试在用户登录或注销时执行相同操作(由ServiceControlHandler中的SERVICE_CONTROL_SESSIONCHANGE触发)。为了验证代码是否应该正常工作,我尝试在WTS_SESSTION_LOGOFF和WTS_SESSION_LOCK的情况下修改密钥 - 我可以看到锁定/解锁系统后值已更改。再次,当我真正注销时,价值没有改变。
你有什么想法,为什么这不起作用?
答案 0 :(得分:1)
我有时会看到这种行为,听起来像是#34;有时候来得太晚了#34;不是100%确定这是 soulution,但是在写完值后我添加了QSettings :: sync(),问题似乎消失了。