Question

Nous avons une application héritée qui accède au Registre. Parce qu'il est une application 32 bits, il accède au Registre dans Windows 7 grâce à la virtualisation du Registre lors du référencement HKEY_LOCAL_MACHINE \ Software. Ma question est ce paramètre (s) dans Visual Studio avons-nous besoin de modifier pour compiler nos applications où ils accèdent au registre « normalement » sans passer par la virtualisation du Registre?

Était-ce utile?

La solution 3

La solution a consisté à compiler l'application héritée pour cibler x64. Une application qui vise explicitement x64 ne sera pas soumise à la virtualisation de Registre.

Autres conseils

Si vous lisez la page Virtualisation Registre de près, vous remarquerez que la virtualisation ne se limite pas à 64 bits de Windows. Il ne dispose que seuls les processus 32 bits seront virtualisés. Mais la virtualisation se fait sur les versions 32 et 64 bits Vista et versions ultérieures. Ainsi, le titre de la question et la balise x64 sont un peu trompeur.

Pour répondre à votre question, la même page dit ceci: « La virtualisation du Registre est désactivée pour ce qui suit:. ... Les processus qui ont requestedExecutionLevel spécifié dans leurs manifestes »

Vous pouvez donc désactiver la virtualisation en ajoutant un fichier manifest à votre exécutable qui indique son niveau d'exécution. Il y a au moins un article Microsoft KB pour savoir comment faire dans Visual Studio 2005: http: // support. microsoft.com/kb/944276.

Pourquoi ne pas utiliser:

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\...");
return (string)key.GetValue("blah");

et ajouter l'accès au registre dans le fichier customtrust.config.

ou ne pas que le travail dans Windows 7?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top