2009-07-20 8 views
0

Ich habe JavaScript-Code, der eine COM-Interop-Assembly programmgesteuert registriert, indem alle erforderlichen Schlüssel und Werte in die Registrierung geschrieben werden. Eine ältere Version dieses COM-Objekts wurde in VB6 geschrieben und funktionierte nicht korrekt in x64-Versionen von Windows, es sei denn, der Benutzer führte die x86-sidebar.exe manuell aus, sodass einige unserer Benutzer zur Verwendung der x86-sidebar.exe für die COM-Objekt zu arbeiten.Zuverlässige Erkennung der Betriebssystemarchitektur in einem Windows-Desktop-Gadget

Kurz gesagt, ich muss die Architektur des laufenden Betriebssystems korrekt erkennen. Ich habe alle die folgenden versucht, die falschen Werte, wenn die x86-Version von sidebar.exe zurückkehren läuft:

System.Machine.processorArchitecture 
navigator.platform 
navigator.cpuClass 

Gibt es etwas, das ich sicher verwenden kann, um festzustellen, ob Win64 läuft, obwohl es x86 Sidebar läuft. exe?

Antwort

1

es herausgefunden:

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

den Wert true, wenn Internet Explorer ist in 32-Bit-Emulationsmodus ausgeführt wird, und das gleiche gilt für sidebar.exe.

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