2010-09-07 27 views
1

Comme titre vraiment. En regardant dans regedit, la clé-valeur existe, mais la clé Wow6432 (HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion) n'a pas cette clé. Cela signifie qu'une application 32 bits ne fonctionne pas sur ma version Windows 64 bits ... ce qui semble incorrect, l'application 32 bits ne devrait-elle pas fonctionner sans modifications? Ou est-ce un cas les applications 32 bits doivent être modifiées pour fonctionner sur Windows 64 bits?HKLM LOGICIEL Microsoft Windows NT CurrentVersion ProductId non trouvé exécutant l'application 32bit sur 64 bits Windows

+0

applications 32 bits devraient fonctionner parfaitement bien sur OS 64 bits. Vous avez dit que la valeur-clé existe. Si ce n'est pas dans Wow6432, où est-ce? –

+1

@Adrian .. sur Windows 64 bits, cette valeur n'existe que dans le registre 64 bits. – Gerald

Répondre

6

Les applications ne devraient pas accéder directement à cette valeur de registre. La meilleure façon d'obtenir cette valeur est d'utiliser WMI pour obtenir la propriété SerialNumber du Win32_OperatingSystem class. Cela fonctionne correctement à partir d'une application 32 bits s'exécutant sur Win64.

Une alternative serait d'utiliser le drapeau KEY_WOW64_64KEY lors de l'ouverture de la clé de Registre (ne fonctionne pas sur Windows 2000.)

+0

Nous recevons beaucoup de valeurs de registre ... en fait, nous ne savons pas nécessairement exactement ce qu'elles sont au moment du codage. C'est juste un peu ne fonctionne pas. Est-il possible que je puisse passer des drapeaux pour ouvrir la clé de registre, cela fonctionnera sur 32 et 64 bits ... ne veulent pas vraiment écrire du code différent pour les deux si l'API Windows peut le faire pour moi. –

+0

L'indicateur KEY_WOW64_64KEY fonctionnera à la fois sur 32 bits et sur 64 bits. Sur Windows 32 bits, il sera simplement ignoré (sauf sur Windows 2000 où il va probablement planter), et sur Windows 64 bits, il lira toujours les valeurs du registre 64 bits. – Gerald

+0

merci pour clarifier. Win2000 n'est pas un problème pour nous :) –