I just downloaded this project. Enabled ShutdownPE and it is failing that it will only run on x64.
In the code for ShutdownPE, arch is set to x86|x64, so it should not matter if it is x86 or x64. Also the zip has x86 and x64 versions of ShutdownPE.exe
Code for arch_check:
[Arch_check]
If,#1,Equal,,Echo,"Using Arch YOU MUST DEFINE Architecture supported by script. Parameter missing",WARN
If,#1,Equal,,Exit,"Using Arch YOU MUST DEFINE Architecture supported by script. Parameter missing"If,#1,Equal,,Set,%arch%,x86
If,#1,Equal,off,Set,%arch%,%SourceArch%
StrFormat,POS,%arch%,|,%multiarch%
If,%multiarch%,Equal,0,Begin
If,Not,EXISTVAR,%TargetWOW64%,Set,%TargetWOW64%,%SourceArch%
If,%arch%,Equal,x86,If,Not,%TargetWOW64%,Equal,x86,Exit,"%ProgramTitle% requires WOW64 for PE %SourceArch%"
If,%arch%,Equal,x64,If,Not,%SourceArch%,Equal,x64,Exit,"%ProgramTitle% can only run on PE x64"
If,%arch%,Equal,IA64,If,Not,%SourceArch%,Equal,IA64,Exit,"%ProgramTitle% can only run on PE IA64"
End
Else,Begin
StrFormat,POS,%arch%,%SourceArch%,%multiarch_test%
If,%multiarch_test%,Equal,0,Exit,"%ProgramTitle% requires different source architecture than current %SourceArch%"
End
Set,%arch%,%arch%,GLOBAL
From what I can see %arch% is not set before the StrFormat so shouldn't that line read:
StrFormat,POS,#1,|,%multiarch%
I also don't see where %arch% is being set for the if statements below the StrFormat command.