2009-07-20 10 views
0

Je dispose d'un code JavaScript qui enregistrera par programmation un assembly COM Interop en écrivant toutes les clés et valeurs nécessaires dans le registre. Une ancienne version de cet objet COM a été écrite en VB6 et ne fonctionnait pas correctement sur les versions x64 de Windows, sauf si l'utilisateur exécutait manuellement le fichier xbar sidebar.exe, de sorte que certains de nos utilisateurs seraient passés à l'utilisation de x86 sidebar.exe pour le Objet COM à travailler.Détection fiable de l'architecture du système d'exploitation dans un gadget de bureau Windows

En résumé, je dois détecter correctement l'architecture du système d'exploitation en cours d'exécution. J'ai essayé tous les éléments suivants qui renvoient des valeurs incorrectes si la version x86 de sidebar.exe est en cours d'exécution:

System.Machine.processorArchitecture 
navigator.platform 
navigator.cpuClass 

Y at-il quelque chose que je peux utiliser pour détecter de manière fiable si Win64 est en cours d'exécution, même si elle est en cours d'exécution barre latérale x86. EXE?

Répondre

1

figured it out:

navigator.userAgent.indexOf("WOW64") > -1 

true si Évalue Internet Explorer est en cours d'exécution en mode d'émulation 32 bits, et la même chose est vraie pour sidebar.exe.

http://en.wikipedia.org/wiki/WOW64