What does Windows do to an app when it is run in Compatibility Mode?
Is there a way I can detect the compatibility mode settings in .NET?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
It inserts several compatibility shims that mimic old behavior or bugs. Sometimes this is necessary, some programs behavior depends on old bugs which have since been fixed; or they used undocumented functionality.
Joel’s blog entry, How Microsoft Lost the API War gives a nice example of that:
That’s what compatibility shims are meant to do. Insert legacy behavior. Whether it is to report a different version of Windows; make a certain API behavior a different way; or disable some other features of Windows that might cause problems like Aero.
The technical details of shims are here.
The Question Is a Program Running in Compatibility Mode seems to give a relevant answer.