I didn't know this: if you set a compatibility mode for an executable in Windows (I tested it in 2008 R2, but I guess it works the same in prior versions), the OS merely stores this as a path<->compatibility-mode assignment and applies it whenever the given program at the given path is executed (regardless of the method: via a shortcut on your desktop or in Start Menu, or directly, eg. through commandline or a batch file or executed by a background service, etc.). Two fun facts:
- the assignment is not removed when the executable is deleted!
- the assignment is really path-based ... thus if you replace the executable with another one (but keep the filename), the compatibility mode remains! LoL

Just try it. Create a test dir, copy some custom executable into it (I used
Tcpview.exe, but it could be anything that is not "part of Windows" ... eg. it didn't work with calc.exe ... actually I couldn't even start the calculator from any other location than it's original path). Set a compatibility mode for the EXE and delete it. Now copy some other executable into the dir using the same name (Tcpview.exe in my case). I used
PUTTY.EXE to replace the original executable. Start the app and it'll run in the previously defined compatibility mode.
You can use
Process Explorer to check whether or not an app runs in compatibility mode. Double-click the given process in the list/tree and on the Environment tab there'll be a
__COMPAT_LAYER
environment variable for processes running in compatibility mode.
Recent comments
2 years 34 weeks ago
4 years 3 weeks ago
4 years 3 weeks ago
4 years 5 weeks ago
4 years 6 weeks ago
4 years 13 weeks ago
4 years 13 weeks ago
4 years 13 weeks ago
4 years 13 weeks ago
4 years 13 weeks ago