Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 13

InstallScript GetExtents fails for high dpi systems

I have a script that uses GetExtents but it returns a failure if the user has a high dpi tablet.

nResult = GetExtents(nvDx, nvDy);
sMsg = "True";
if (nvDx < 1024 || nvDy < 768) then
sMsg = "False";
SuiteLogInfo("Screen Resolution %d, %d", nvDx, nvDy);
SuiteSetProperty("ScreenResolutionGood", sMsg);

On a Windows 8 tablet the values returned do not reflect the actual x and y values set by the OS but are modified by the dpi setting.
Is there a way to just get the x and y values independent of the DPI setting?

The customer had DPI set to 150% and our support team tried various screen resolutions. Each time the values come back and my check ends up as false.

Thank you.
Labels (1)
0 Kudos
(1) Reply
Level 12 Flexeran
Level 12 Flexeran

I assume you're using an InstallScript (or maybe InstallScript MSI) project here. Can you try this with InstallShield 2014? We added high DPI support in 2014. Amongst the changes are updates to the manifest used by setup.exe to indicate that it is DPI Aware. Without this (i.e. what you're seing in InstallShield 2013) Windows will misreport things for better overall behavior.

(Since the manifests are external and updated as part of our build process, you could try incorporating the DPI Aware parts, but the run-time appearance of the InstallScript UI will likely be unacceptable before our updates in InstallShield 2014.)
0 Kudos