Enregistrer les valeurs de registre de la Crispation à l'aide d'une application en C#
Je suis en train de travailler sur un WinCE 6.0 système avec un écran tactile qui stocke ses données d'étalonnage (x-y de l'emplacement, de l'offset, etc.) dans le système de registre (HKLM\HARDWARE\TOUCHER). Maintenant, je suis de la passation de la cal valeurs des clés de registre qui se mettre dans l'image de l'OS au moment de la construction. Cela fonctionne bien pour le moniteur que j'ai l'original cal valeurs, mais lorsque je charge cette image dans un autre système avec un autre moniteur, l'écran tactile à l'emplacement du pointeur (et c'est compréhensible), car les deux écrans n'ont pas la même cal valeurs.
Mon problème est que je ne sais pas comment bien stocker des valeurs dans la base de registre afin qu'ils persistent après un cycle d'alimentation. Voir, je peux recalibrer l'écran sur le second système, mais les nouvelles valeurs n'existent que dans la mémoire volatile. J'ai proposé à mon patron que nous pourrions nous contenter de dire à nos clients de quitter le pouvoir sur l'unité de tous les temps -- qui ne va pas bien.
J'ai besoin de conseils sur la façon d'enregistrer les nouvelles constantes dans le registre, de sorte que nous pouvons calibrer les écrans une fois avant leur expédition à nos clients, et ne pas avoir à créer des images de système d'exploitation pour chaque unité de construction.
Une méthode C# qui est connu pour travailler dans CE6.0 serait utile. Merci.
-Odbasta
OriginalL'auteur odbasta | 2008-09-11
Vous devez vous connecter pour publier un commentaire.
Je pense que vous êtes probablement à la recherche pour est la fonction d'injection de la classe RegistryKey. Ce n'est normalement pas nécessaire (le registre est paresseusement balayées par défaut), mais si l'alimentation est désactivée sur l'appareil avant que le système a une chance pour ce faire, des modifications seront jetés:
http://msdn.microsoft.com/en-us/library/microsoft.win32.registrykey.flush.aspx
Cette fonction est disponible dans .NET Compact Framework version 2.0 et mieux.
OriginalL'auteur TheSmurf
Suivi sur cette question:
Grâce DannySmurf, les bouffées de chaleur de la clé de registre a été, finalement, ce qui devait être fait. Cependant, il y avait quelques étapes que j'ai été absent avant d'atteindre ce stade. Donc, voici ce qui est venu à la lumière:
Lors du passage à une ruche de registre de la structure, vous devez vous assurer que la ruche existe sur un non-volatile moyen. Ceci est spécifié dans la plate-forme.fichier reg:
Une fois le système.hv fichier sur le disque dur (carte CF dans mon cas), les valeurs dans le registre persisteront après un démarrage à froid. Notez que le système.hv fichier contient toutes les HKLM clés.
Il est également important de noter que tous les pilotes qui ont besoin d'être initialisé au démarrage du système doivent être spécifiée comme telle dans les .reg fichiers de la solution. Par exemple, j'ai dû faire en sorte que les pilotes de disque dur (PCMCIA) ont été chargés avant d'essayer de lire le fichier de la ruche système d'eux. La façon de le faire est d'ajouter une directive dans le format suivant autour de chaque conducteur init clés:
Que, plus beaucoup de chance, ce n'est pas le sujet.
OriginalL'auteur odbasta
Ce que j'ai compris vous avez besoin de savoir comment définir une valeur dans le registre au cours de l'exécution. J'espère que les codes soufflet peut vous aider.
à l'aide de Microsoft.Win32;
OriginalL'auteur