登录
首页 >  Golang >  Go问答

HKEY_USERS中未注册的子项删除导致Windows注册表项侦听器发生错误

来源:stackoverflow

时间:2024-02-07 22:36:24 150浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《HKEY_USERS中未注册的子项删除导致Windows注册表项侦听器发生错误》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在使用 go 的 windows 包,特别是 windows.regnotifychangekeyvalue() 函数:

for {
    err := windows.RegNotifyChangeKeyValue(
            windows.Handle(key),
            false,
            windows.REG_NOTIFY_CHANGE_LAST_SET|windows.REG_NOTIFY_CHANGE_NAME,
            windows.Handle(0),
            false,
        )

    // do stuff once event triggers

    ...

}

但是,当从 hkey_users 中删除子项时,我没有收到任何事件。如果我监视其他某个键,则在添加或删除子键时会收到一个事件。但是当我监视 hkey_users 时,我仅在添加密钥时收到事件。

是什么让 hkey_users 在这种情况下如此特别?

编辑:这似乎是因为 hkey_users 的子项是通过 regloadkey()regunloadkey() 添加/删除的。所以我的问题变成:如何监听来自 regunloadkey() 的事件?为什么通过 regloadkey() 添加密钥会触发事件,但通过 regunloadkey 删除密钥不会触发事件?


正确答案


RegNotifyChangeKeyValue document exampleHKU .DEFAULT 命令参数一起使用,我无法重现该行为。在 .DEFAULT 下添加或删除的键和值都会发出该事件的信号。

本篇关于《HKEY_USERS中未注册的子项删除导致Windows注册表项侦听器发生错误》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>