J'ai un programme qui a été écrit sous XP. Ce que j'ai découvert, c'est que cela ne fonctionne pas correctement sur Win7 parce que HLKM n'est plus accessible en écriture par les non-administrateurs. Essentiellement, lorsque vous enregistrez le programme, les informations de licence sont censées entrer dans le registre. Cette information est valable pour tout le monde sur l'ordinateur, pas seulement pour un utilisateur, donc je ne veux pas le mettre dans HKCU. Mais toute copie du programme doit être capable de modifier ce registre (même si c'est un non-administrateur qui l'exécute), car il y a certaines situations où il va obtenir des informations de licence à jour de mon serveur web (par exemple, si le les données du registre sont perdues ou endommagées, ou si votre licence actuelle a expiré et qu'elle doit voir si nous avons appliqué une extension). Ce n'est pas horrible si elle sort sur le serveur web pour chaque utilisateur unique qui démarre le programme, mais cela cause des problèmes ennuyeux, donc je préfère continuer à travailler comme dans XP. Existe-t-il un moyen de stocker des données dans le registre et de les partager avec Win7, ou vais-je commencer à chercher à stocker un fichier INI sur le disque?Partage de données entre utilisateurs avec le registre Windows 7
Répondre
Pourriez-vous faire en sorte que le programme d'installation rende votre zone de registre particulière accessible à tous? L'installateur devra être exécuté avec des privilèges élevés de toute façon, je m'attendrais - donc cela semble une approche idéale.
Voici comment je l'architecturerais: votre configuration est élevée et configure la clé. Ensuite, si leur licence est corrompue ou non, vous activez un bouton ou un élément de menu qui a un texte tel que "fixer la licence" ou "mettre à jour la licence". Vous mettez un bouclier sur ce bouton ou élément de menu. Quand ils cliquent dessus, vous lancez un exe séparé en utilisant ShellExecute. Cet exe a un manifeste qui nécessite une élévation. Il peut alors écrire dans la zone protégée du registre. Le reste de l'application peut avoir un manifeste avec asInvoker. Si vous voulez qu'il soit complètement invisible, soit l'application entière doit toujours être élevée (ennuyeuse) ou parfois l'application lancera juste un autre exe qui demande l'élévation sans avertissement - dans ce cas les utilisateurs intelligents diront non. Un peu moins d'invisibilité est une bonne chose.
Il s'agit de la meilleure option, car elle utilise le mécanisme UAC pour conserver vos informations de licence sous HKLM aussi sûres que les exécutables réellement installés à partir des modifications apportées par les utilisateurs non-navigués (ou programmes voyous). –
- 1. Windows 7 partage de données entre utilisateurs via le registre
- 2. Enregistrement des données dans le registre sous Windows 7
- 3. Lire Windows 7 Registre C#
- 4. Partage de git entre différents utilisateurs
- 5. partage dossier Windows 7 API
- 6. Partage de données entre JVM
- 7. Où stocker les données du Registre pour tous les utilisateurs
- 8. problème clé de Registre ouverture sur Windows 7
- 9. variable de partage php entre différents utilisateurs/sessions
- 10. Écriture dans le registre Windows?
- 11. Création de clés de registre dans Windows 7
- 12. Chargement dynamique de la fonction de registre sur Windows 7?
- 13. Partage de données entre des gestionnaires d'événements?
- 14. Supprimer les clés de registre pour Windows Phone 7 Emulateur
- 15. Partage de données entre les actions
- 16. Partage de données entre les contrôles utilisateur
- 17. Partage de données entre deux classes
- 18. Partage de données entre activités et services
- 19. Partage de données entre Silverlight ViewModels
- 20. Partage de courriel avec Windows Mobile7
- 21. Indexation de partage Windows
- 22. Partage de mémoire entre deux processus (C, Windows)
- 23. IIS7: Partage de sessions entre applications avec le serveur d'état
- 24. Partage de données entre les actions et le comportement de l'application
- 25. Windows Server Données des utilisateurs Active Directory dans Windows Phone 7?
- 26. lecture partiellement confiance app.config sur Windows 7 partage réseau
- 27. Échecs de fichier/registre MSI sous Windows Server 2008/Windows 7 (x64)
- 28. Accès python httplib2 sur un partage réseau dans Windows 7
- 29. Les utilisateurs TFS s'affichent au démarrage de Windows 7
- 30. Récupérer des données du registre Windows
Cela devrait fonctionner, mais je ne dirais pas que c'est une approche idéale. Il laisse les informations de licence sous HKLM vulnérables aux modifications apportées par les utilisateurs non privilégiés. Idéalement, vous souhaitez protéger les informations de licence tout aussi fortement que les fichiers EXE et DLL installés dans votre application. L'approche proposée par Kate Gregory permettra d'atteindre cet objectif. –
En fait, cela fonctionnerait bien pour l'un des problèmes auxquels je suis confronté. Comment peut-on dire à l'installateur de rendre une partie de HKLM accessible en écriture? – Escher