J'ai écrit le script nsis pour Java project.J'ai un fichier batch dans mon projet.J'ai écrit un fichier batch pour généralement Windows 32 bits et 64 bits.Après l'installation, j'ai démarré le fichier batch automatiquement en utilisant - Exec command.Ses woks fonctionnent bien dans les fenêtres 32 bits.Mais en même temps, cela ne fonctionne pas bien en 64 bits.Je soupçonne donc qu'avant l'installation, je dois vérifier si Windows est en version 32 bits ou 64 bits.Veuillez partager votre vues comment vérifier?
Utilisez la macro RunningX64 dans l'en-tête x64.nsh :
!include LogicLib.nsh
!include x64.nsh
Section
${If} ${RunningX64}
DetailPrint "64-bit Windows"
${Else}
DetailPrint "32-bit Windows"
${EndIf}
SectionEnd
Pour les futurs googleurs paresseux - Un petit extrait:
Inclure ceci:
!include x64.nsh
Et utilisez ceci si:
${If} ${RunningX64}
# 64 bit code
${Else}
# 32 bit code
${EndIf}
Voici ce que j'utilise la plupart du temps sans avoir besoin de 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
Maintenant, $ Bit contient 64 ou 32 qui peuvent être utilisés comme ceci:
${If} $Bit == 64
...64-bit code..
${Else}
..32-bit code...
${EndIf}
Ou
StrCmpS $Bit 64 SixtyFour ThirtyTwo
SixtyFour:
...
Goto End
ThirtyTwo:
...
End:
J'ai utilisé StrCmpS
car je pense que c'est un poil plus rapide. Lol. J'espère que cela t'aides! =)