J’ai implémenté le mécanisme suivant : A chaque démarrage, une application est lancée. Cette application cherche dans la base de registre une clé qui n’existe pas dans notre projet Platform Builder. Si la clé n’est pas trouvée, on peut en déduire qu’il s’agit d’un premier démarrage après un effacement de la base de registres (la carte démarre avec une base de registre regénérée à partir de l’image Windows CE). La calibration est alors lancée. Une fois la calibration effectuée par l’utilisateur, la clé est créée puis la base de registres est sauvegardée en flash. Au prochain démarrage, l’existence de la clé permettra d’éviter le lancement de la calibration.
Petit détail d’implémentation : dans mon application, si je trouve la clé, je vérifie également la valeur d’une sous-clé.
Pour mettre en place cette application, il suffit de créer, dans Platform Builder, un sous-projet (menu Projet, Add New Subproject) appelé TouchCalibrationAtFirstStart et choisir une application WCE Console : Cliquer sur Suivant, cocher A Simple Windows Embedded CE Console Application, puis cliquer sur Terminer.
Remplacer le fichier TouchCalibrationAtFirstStart.cpp par celui-ci. Remplacer le fichier TouchCalibrationAtFirstStart.reg par celui-ci.
Regénérer la solution et après le flashage du nk.bin, la calibration automatique doit se lancer.