[.net2] ecrire dans la base de registre une valeur dword supérieur à 2^31

Contenu du snippet

J'ai rencontré un petit problème lors de l'écriture d'une valeur dword dans la base de registre.
Cette valeur 4294967197 est bien inférieur à 2^32 donc à priori aucun problème mais erreur.
La classe Registry ne permet pas d'écrire des valeurs supérieur à 2^31 (Int32), quand aux entiers de la base de registre ils sont signés (UInt32) d'ou l'erreur !

Le code ci-dessous permet donc de passer une valeur signé à notre classe Registry
N'oubliez pas d'importer l'espace de nom Microsoft.Win32 pour la classe Registry

Source / Exemple :


Dim UInt32Val As UInt32 = 4294967197
Dim Int32Val As Integer = (CType(-(UInt32.MaxValue - UInt32Val), Integer) - 1)

Dim MyKey As RegistryKey = Registry.CurrentUser.OpenSubKey("MaCle", True)

MyKey.SetValue("MaValeur", Int32Val, RegistryValueKind.DWord)

Conclusion :


J'espère que ce code pourra en aider plus d'un car moi même j'ai bien été content d'avoir trouvé de l'aide ce problème d'écriture de valeur.
Bon code à tous :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.