Comment détecter si le pc est en 32 bits ou 64 bits?
Comment voulez-vous déterminer si l'ordinateur que vous êtes sur une machine 32 bits ou 64 bits de la machine?
J'ai besoin de ce fait en vba de préférence.
Pourquoi voulez-vous? Cela pourrait être déterminée à l'aide de
en supposant que l'OP a Office 2010. Le
... mais je peux voir maintenant que l'OP accepté cette réponse de la vôtre, donc je suppose qu'il est sûr de supposer qu'il est d'Office 2010.
#IfWin64
#Else
#End If
pour compiler la version pertinente et l'utilisation d'une variable publique Win = 64 ou Win = 32.en supposant que l'OP a Office 2010. Le
VBA7
et Win64
constantes de compilation ont été introduites dans la version de bureau.... mais je peux voir maintenant que l'OP accepté cette réponse de la vôtre, donc je suppose qu'il est sûr de supposer qu'il est d'Office 2010.
OriginalL'auteur if_zero_equals_one | 2011-06-06
Vous devez vous connecter pour publier un commentaire.
l'ai eu à partir
http://www.msoffice.us/Access/PDF/Extending%20VBA%20with%20APIs.pdf. Semble que cela fonctionne sur le mien.
http://msdn.microsoft.com/en-us/library/ms724340(v=vs. 85).aspx
Option Compare Database
ne fonctionne que dans Access-VBA. Semble bien fonctionner autrement; renvoie correctementFalse
sur mon ordinateur. +1BTW, il peut également travailler: environ("PROCESSOR_ARCHITECTURE")
OriginalL'auteur THEn
Je pense que la façon la plus simple est:
Parfois, il est également utile de vérifier si votre Bureau est 32 ou 64 et utiliser cette information pour accéder à la bonne clé dans le registre. De sorte que vous pouvez faire:
HTH
Cette deuxième section est clairement erronée. Le #Win64 compilateur constante indique que vous êtes en cours d'exécution 64 bits d'office, si c'est vrai #VBA7 est toujours aussi vrai. Le #VBA7 constante indique que vous êtes en cours d'exécution d'Office 2010 ou plus et n'a rien à voir avec la détection de 32 vs 64 bits. L'exécution de ce code renvoie "Win 32 et Office 32" sur Win 64 et Office 32. Falo la réponse peut être utilisée pour distinguer si l'ordinateur est en 64 bits avec Office 32.
OriginalL'auteur Daniel Bonetti
@Wouter de Simon réponse est en quelque sorte sur la bonne voie, mais vraiment incomplet. Il manque un couple de
Declare
consolidés ainsi comme une sorte d'explication.Donc je crois qu'il est inutile de présenter une information plus complète et la version de travail ici.
Mise en garde:
http://msdn.microsoft.com/en-us/library/ms684139%28v=vs.85%29.aspx
OriginalL'auteur Jean-François Corbett
Pour déterminer si l'exécution d'Office est 64-bits ou 32-bits:
Utilisation IsWow64Process (réponse de Jean-François Corbett).
Pour déterminer si Windows est en 64-bits ou 32-bits:
OriginalL'auteur Falo
De compilation conditionnelle pourrait être très utile,
WinXX
détecte environnement, mais pas des propriétés du matériel, exemple ci-dessous :OriginalL'auteur Qbik
Je pense que VBA peut être lié à la version d'office qui est en cours d'exécution et il est vraiment important de ce type de processus est en cours d'exécution. Cet extrait de code peut aider (VB6 code)
Ni est fonction getcurrentprocess()
Avez-vous utilisé la mise à jour de l'exemple avec le déclare? La fonction est dans le kernel32 lib (OS) et peuvent ne pas être disponibles dans le code VBA. Au lieu de cela, vous auriez à faire un fichier vbscript et l'utilisation normale de code VB6.
Je suis actuellement à l'aide de cette dans une macro et je ne peux pas développer un passé qui
Alors il n'est probablement pas possible de détecter la plate-forme. Vous devez être en mesure de charger le IsWow64Process fonction de la dll du noyau. Il n'a probablement pas de travail en VBA
OriginalL'auteur Wouter Simons