Bonjour à tous,
je suis en train de perdre mes cheveux sur ce coup
Je travail au niveau de la base de registre et j'essaye d'écrire la valeure maximum authorisée dans un Dword.
Quand j'exécute cette ligne, je recois le message suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 regKeyEvt.SetValue("Retention", 4294967295, RegistryValueKind.DWord)
Ce qui me perturbe, c'est que je peux écrire cette valeur en utilisant l'outil Regedit, soit en entrant la valeur en décimal ou en hexa (FFFFFFFF).The type of the value object did not match the specified RegistryValueKind or the object could not be properly converted.
Quand je passe par le code, ca ne passe pas.
J'ai essayé de caster en faisant
Mais même message.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 UInt32.parse(4294967295) ou directcast(4294967295, long) ou ...
En fait, un Dword est un unsigned int32, alors que ma valeur est un Long (ou int64). Je sais que vous me direz que c'est normale alors que cela ne passe pas, mais pourtant avec l'outil de microsoft (regedit) ca passe.
D'ailleur, c'est la valeur maximale authorisée pour ce type.
Je dois écrire cette valeur dans la clé cible car elle représente un état de la gestion des logs de l'EventViewer.
Comment puis je écrire cette valeur dans un dword malgé tout? Qu'est ce qu'il me manque pour cela fonctionne?
Merci à tous,
Partager