30

is there code to detect 64 platform e.g.

if X86 then ...
if X64 then ...
Tom
  • 6,725
  • 24
  • 95
  • 159

2 Answers2

51

If you want to throw a check on whether to drop or run a file you can also throw a check on the call.

Check: IsWin64;

or even

Check: "not IsWin64";

This allows a quick and easy way to compile 32-bit & 64-bit application installers into one package, but only run the specific one.

EDIT: To expand a little further for those that might be searching for this, I wanted to follow up.

For example, if you want to only allow certain files to be copied down by the installer you could do the following:

[Files]
Source: "MyProg-x64.exe"; DestDir: "{app}"; Check: IsWin64;
Source: "MyProg-x86.exe"; DestDir: "{app}"; Check: "not IsWin64";

Adapted from source: http://www.jrsoftware.org/ishelp/index.php?topic=scriptcheck

Dan
  • 722
  • 6
  • 14
39

Yes.

Use

if IsWin64 then
  // Do sth
else
  // Do sth else

There is also a Is64BitInstallMode function. Indeed, a 32-bit setup can run on a 64-bit OS. Hence, Is64BitInstallMode implies IsWin64, but IsWin64 does not imply Is64BitInstallMode.

Andreas Rejbrand
  • 105,602
  • 8
  • 282
  • 384