You can make a copy of wmplayer.exe
into the same Windows Media Player directory. The copy will have a Compatibility tab but otherwise work the same. (You could also hack up the EXE manifest with a hex editor to change its DPI awareness declaration, but making a copy is much easier!)
Unfortunately, GDI (enhanced system) scaling causes a big mess for this application:
But system scaling is fine, just blurry:
If you need to modify the DPI awareness of the original executable though (e.g. because of file association issues), we have to break out the hex editor—I like XVI32. First, assign ownership of and full access to the wmplayer.exe
file to the Administrators group. Make a back-up copy in case you make a mistake or want to revert the changes.
Run XVI32 as administrator and open wmplayer.exe
. Press Ctrl+F to open the Find dialog. Search for the text string <dpiAwareness
with the "as Unicode Latin" box unchecked. Click the opening angle bracket in the right pane to make sure that pane is active (white background). Tap the spacebar until you have overwritten the entire tag <dpiAwareness>PerMonitorV2</dpiAwareness>
with spaces. (Do not press Delete or Backspace!) This removes the DPI awareness declaration and causes Windows to apply system scaling. Save the changes with Ctrl+S.
For completeness' sake: GDI scaling can be applied by adding a gdiScaling
tag. (This would again produce ugly results for Windows Media Player, but might be useful for other programs.) Scroll up a tiny bit and overwrite the "2016" in the previous tag's xmlns
attribute with "2017", then immediately after its closing angle bracket, overwrite the spaces with <gdiScaling>true</gdiScaling>
. When you're done, it will look like this (new tag highlighted in red, attribute change selected in blue):