Javaプロジェクトのnsisスクリプトを作成しました。プロジェクトにバッチファイルがあります。32ビットと64ビットの一般的なWindows用のバッチファイルを作成しました。インストール後、次を使用してバッチファイルを自動的に開始しました- Execコマンドです.32ビットウィンドウでは問題ありませんが、64ビットではうまく機能しません。したがって、インストールする前に、ウィンドウが32ビットバージョンか64ビットバージョンかを確認する必要があります。確認方法は?
x64.nsh ヘッダーでRunningX64マクロを使用します。
!include LogicLib.nsh
!include x64.nsh
Section
${If} ${RunningX64}
DetailPrint "64-bit Windows"
${Else}
DetailPrint "32-bit Windows"
${EndIf}
SectionEnd
将来の怠惰なグーグルのために-小さなスニペット:
これを含める:
!include x64.nsh
そして、これを使用するのは:
${If} ${RunningX64}
# 64 bit code
${Else}
# 32 bit code
${EndIf}
ここでは、x64.nshを使用せずにほとんどの場合に使用します。
Var Bit
System::Call "kernel32::GetCurrentProcess()i.s"
System::Call "kernel32::IsWow64Process(is,*i.r0)"
StrCmpS $0 0 +3
StrCpy $Bit 64
Goto +2
StrCpy $Bit 32
$ Bitは64または32を保持し、次のように使用できます。
${If} $Bit == 64
...64-bit code..
${Else}
..32-bit code...
${EndIf}
または
StrCmpS $Bit 64 SixtyFour ThirtyTwo
SixtyFour:
...
Goto End
ThirtyTwo:
...
End:
髪の毛の方が速いと思うので、StrCmpS
を使用しました。笑。お役に立てれば! =)