为什么我的DLL只为一个用户注册



我使用EZShellExtensions.net编写了一个shell扩展。当我以自己的身份登录时,它在我的开发环境中运行得很好,当我以其他身份登录时也可以在任何系统中运行。对于所有其他用户,我创建的复制挂钩永远不会出现。我已经使用NirSoft的RegDLLView来验证DLL是否已注册,但运气不好。

我可以检查一下为什么会发生这种情况?

仅供参考

我很乐意将我的代码副本发送给任何想帮忙的人。EZShellExtensions.NET的评估期为30天。

更新如果有人感兴趣,使用供应商的注册工具时的ProcMon输出现在可以作为CSV/PML文件提供。

决议

我最终将控制台输出添加到dll中进行调试。事实证明,除了我之外,当作为任何用户运行时,计时器都不会启动(不知道为什么)。这一问题已得到解决。

这表示shell扩展已在HKCU\Software配置单元而不是HKLM\Software中注册。只有后一个配置单元使扩展对所有用户都可用。这种情况经常发生,因为除非进行写入的程序被提升,否则UAC会阻止写入HKLM\Software。

如果这个库附带了一个专用的注册程序,他们通常会这样做,那么一定要从提升的命令提示符下运行它。开始+所有程序,附件文件夹,右键单击命令提示符链接,然后单击"以管理员身份运行"。重新运行注册工具。

如果你仍然有问题,那么SysInternal的ProcMon工具可以向你显示内容的确切位置。请毫不犹豫地使用供应商的支持渠道。

相关内容

  • 没有找到相关文章

最新更新