2012-01-18 91 views
3

我已经使用EZShellExtensions.net编写了一个shell扩展。当我以我的身份登录时,它在我的开发环境中工作良好,以及以我身份登录时的任何其他系统。对于所有其他用户,我创建的复制挂钩从不出现。我用NirSoft的RegDLLView来验证DLL是否已注册,但没有运气。为什么我的DLL只能注册一个用户?

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

FYI

我很高兴我的代码副本发送给任何人想帮助了这一点。 EZShellExtensions.NET的评估期为30天。

UPDATE使用现在可以作为CSV/PML文件供应商的注册工具时,如果任何人的兴趣 将procmon输出。

RESOLVE

我卷绕添加控制台输出到DLL进行调试。事实证明,当一个计时器不像任何用户一样运行,但我(不知道为什么)。这已经被修复了。

+0

如果你联系他们的支持,请在这里输入答案。 – jgauffin 2012-01-18 20:20:47

+0

您是否检查用户的权限级别? – Tim 2012-01-18 20:29:18

+0

@Tim - 是的,其中一个人也是像我一样的系统管理员。 – 2012-01-19 16:06:28

回答

3

这表明shell扩展已经在HKCU \ Software配置单元而不是HKLM \ Software中注册。只有后者配置单元才可以向所有用户提供扩展。这通常发生是因为UAC阻止写入HKLM \ Software,除非编写的程序被提升。

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

如果您仍然遇到麻烦,那么SysInternal的ProcMon工具可以准确显示您的东西写入的位置。并且不要犹豫使用供应商的支持渠道。

+0

我会仔细检查。我以为我已经证实了,但我会回去验证。 – 2012-01-19 16:06:02

+0

nope ...在HKLM下注册。我写了一个虚拟外接程序,完全没有什么,它的工作。一旦我添加了其余的代码,那就是它“失败”的时候。在我的代码中根本没有用户特定的东西。 – 2012-01-19 16:32:49

+0

很难猜到这一点。向供应商发送您的失败项目的副本。 – 2012-01-19 16:36:31

相关问题