2017-02-07 1 views
0

En essayant de faire un code très simple pour détecter l'architecture de l'ordinateur portable. Voici le code. Mon portable est en 64 bits mais il affichera aussi un message de 32 bits. Y a-t-il autre chose qui manque au code?Pour détecter l'architecture du système

#Load assembly 
add-type -assemblyname system.windows.forms 

#Assign messagebox to variable 
$message1 = [System.Windows.Forms.MessageBox]::Show("This is a 64 bit  version" , "Status") 
$message2 = [System.Windows.Forms.MessageBox]::Show("This is a 32 bit version" , "Status") 

#Display message based on the architecture 
if ([System.Environment]::Is64BitProcess) { 
echo $message1 
} else { 
echo $message2 
} 

Répondre

1

vos boîtes de messages sont en cours d'exécution au moment de la déclaration variable elle-même, vous pouvez confirmer cela en exécutant la méthode déclaration only.show $x = [System.Windows.Forms.MessageBox]::Show("This is a 64 bit version" , "Status") montre la boîte de message et stocke la réponse (dans ce cas « ok ») un message dans la variable, essayez ceci:

#Load assembly 
add-type -assemblyname system.windows.forms 


#Display message based on the architecture 
if ([System.Environment]::Is64BitProcess) { 
[System.Windows.Forms.MessageBox]::Show("This is a 64 bit  version" , "Status") 
} else { 
[System.Windows.Forms.MessageBox]::Show("This is a 32 bit version" , "Status") 
}