I've added a few custom context menus in the past, very successfully. However, I am trying to add an option to disable dpi scaling from the context menu, as many applications require me to go to settings and do this manually. However, under HKCR\.exe there was no shell option. So I created one and added a key, with a command and extended (to make it available by shift clicking.

Here is the output from reg query HKCR\.exe\shell\DPI Compatibility\command:

HKEY_CLASSES_ROOT\.exe\shell\DPI Compatibility\command
(Default)    REG_SZ    reg.exe Add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v %1 /d "~ HIGHDPIAWARE"

The command works on its own, and successfully added DPI settings. However, even with shift-clicking, there's no option. I've tried restarting.

I think the problem might be with the PersistentHandler key that exists under the .exe key. I suspect it's taking precedence over the old Shell/ShellEx system. HKCR\.exe\PersistentHandler contains data {098f2470-bae0-11cd-b579-08002b30bfeb}, which is a key that contains data Null Persistent handler and key PersistentAddinsRegistered, which contains more data pointing to keys.

I'm running Windows 10 if it makes any difference.


Well, I figured it out. This always happens.

The default value for HKCR.exe is "EXEFile", which is a class that contains shell and shellex. By putting my command in there, everything works swimmingly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.