Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to detect 64bit platform by script

Tags:

inno-setup

is there code to detect 64 platform e.g.

if X86 then ...
if X64 then ...
like image 632
Tom Avatar asked Sep 01 '10 12:09

Tom


2 Answers

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

like image 168
Dan Avatar answered Sep 28 '22 01:09

Dan


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.

like image 33
Andreas Rejbrand Avatar answered Sep 28 '22 01:09

Andreas Rejbrand