Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

i am porting an legacy winform application developed for xp on windows 7 ,which is currently developed using 3.5 and some third party controls which are very old but don't want to change them as long as they are working fine. problem is controls not displayed correctly on winform, so we found solution is to DISABLETHEMES as mentioned in

solution works when you right click on .exe file and set DISABLETHEMES . but it don't work when you manually make registry entry

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
key applicationpath

any body tell what i am missing

share|improve this question
I don't think the compatibility shims are just in that one place in the Registry. Run Process Monitor from SysInternals to see what is actually being changed by the right-click action, and reproduce that. – user3463 May 18 '12 at 5:56
same things works under current user that is HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers – sansat May 18 '12 at 8:52

I dont know if it helps, I ran a trace and this is what I get after a GUI change for a program called MyIE (myie.exe).

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]

^ this is the complete path to the program (mabey path is important?) Don't forget the double backslashes when importing a path. The item is a string Reg_SZ ?


Under me as a user (Has to be correct ID thing for the user, this one is munged)

[HKEY_USERS\S-1-5-21-1019789469-3873768421-1457166851-500\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]


Also a file: some report goes into the system disk at windows/WER/ReportQueue/noncritical, I assume it is just a "log" type of thing.

I do not see anything else important to setting it. HKEY_LOCAL_MACHINE <-- this location did NOT have anything related changed in it, and I hit the button that said [Change settings for all users].

I set all the flags, for the purpose of seeing all the flags or to use as template.

I have many older programs, and some of them will never run correct under windows7 with any form of compatability, they use slightly different methods of programming, and probably some bad tricks that worked back then, they fail regular.

share|improve this answer
thanks for your answer its some what correct, pasting my answer below – sansat May 18 '12 at 11:50
up vote 1 down vote accepted

for solving problem i have to make registry entries in HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
key applicationpath


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
key applicationpath

if you want same setting for all user on os. for current user only setting HKEY_CURRENT_USER entry is sufficient.

when you make entry in HKEY_LOCAL_MACHINE somehow application exe dose not know it. but when you make entry under HKEY_CURRENT_USER application instantly recognize settings.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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