I’ve written a shell extension using EZShellExtensions.net. It works great in my development environment when I’m logged in as me, as well as any other system when logged in as me. For all other users, the copy-hook I’ve created never appears. I’ve used NirSoft’s RegDLLView to verify that the DLL is registered, but no luck.
What can I check to see why this is occurring?
FYI
I’m happy to send a copy of my code to whomever wants to help out with this. EZShellExtensions.NET has an evaluation period of 30 days.
UPDATE
ProcMon Output when using the vendor’s registration tool now available as a CSV/PML file if anyone’s interested.
RESOLVE
I wound up adding console output to the dll for debugging. turns out that a timer wasn’t kicking off when running as any user but me (no idea why). This has since been fixed.
That indicates that the shell extension got registered in the HKCU\Software hive instead of HKLM\Software. Only the latter hive makes extensions available to all users. This commonly happens because UAC prevents writing to HKLM\Software unless the program that does the writing is elevated.
If this library comes with a dedicated registration program, they usually do, then be sure to run it from an elevated command prompt. Start + All Programs, Accessories folder, right-click the Command Prompt link and click “Run as administrator”. Rerun the registration tool.
If you still have trouble then SysInternal’s ProcMon tool can show you exactly where stuff gets written. And don’t hesitate to use the vendor’s support channels.