Base de Registre Vista [Résolu]

Signaler
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
-
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
-
Bonjour à tous

Je viens d'installer Vista et je recompile mes applis.
Quelqu'un peut-il me dire comment faire pour écrire et lire des clés dans la base de registre.

Je n'ai aucun problème avec XP. Je pense qu'il sagit de droits. Comment les attibuer dans mon appli?

Merci pour vos réponses.

7 réponses

Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
Bonjour,

Peut être que la solution est ici. Mais j'en sais rien  j'ai pas Vista pour tester.
 
N.B. et j'en veux surtout pas

Cordialement. <hr />"L'imagination est plus importante que le savoir." Albert Einstein
Messages postés
9
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 mars 2012

Bonjour,

J'ai été confronté à ce problème. J'ai trouvé une solution à cette adresse :
http://msdn2.microsoft.com/fr-fr/library/db7fb69e-2dea-4e09-b97a-f178d3d245b7.aspx

Pour ma part, j'ai retenu la solution de placer un fichier manifest avec mes exécutables.

En espérant que tu y trouveras ton bonheur.
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
ah bah ca alors, on trouve toujours des infos tres interessantes sur certains thread
merci gbegreg, ca me sera vraiment utile
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
1
Merci à toi gbgreg
Je suis allé à ton adresse
La chose parait complexe mais je n'ai pas eu le temps d'approfondir.
Ne peux tu pas me donner un bout de code pour que comprenne mieux.
Je ne sais pas cequ'est un fichier manifest.

Merci de me répondre
Messages postés
9
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
1 mars 2012

Bonsoir,

D'après ce que j'ai compris, sous Vista, même un utilisateur de type administrateur n'est pas
forcément autorisé à accéder à certains dossiers, certaines clés dans
la base de registre etc...
Il faut donc que l'application demande à Windows d'élever les droits pour son fonctionnement.
Pour ce faire, le plus simple (si vous ne souhaitez pas modifier le code de votre appli) est l'utilisation d'un fichier manifest.

Sous Vista, la fonction de l'API Windows "CreateProcess" (fonction que Windows appelle pour exécuter un programme par exemple) va lire le fichier manifest de l'application s'il existe. Le fichier manifest est un fichier XML (donc un fichier texte modifiable par n'importe quel éditeur) qui doit être situé dans le même dossier que l'exécutable, avec le même nom que l'exécutable mais avec pour extension ".manifest".

Voici le contenu d'un fichier manifest exemple (repris du site que j'ai mentionné dans mon post précédent):
<?xml version= "1.0" encoding="UTF-8" standalone="yes"?>


<description> Mon Application </description>
<!-- Identify the app's security requirements. -->
<trustInfo xmlns ="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>

Vous pouvez recopier ce code dans un nouveau fichier texte. Remplacez simplement la valeur monapplication de la propriété name par le nom de votre application, saisissez la description que vous souhaitez dans la propriété description.

Le niveau de privilège requireAdministrator est le niveau le plus haut possible. Cela indique que l'application doit être exécutée dans une session Windows Administrateur.

J'ai essayé de résumé brièvement ce qui est indiqué sur la page msdn, en espérant que cela réponde à ton besoin.
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
1
Merci
C'est super sympa. Je vais essayer et je te donne la réponse.
Messages postés
46
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
5 février 2012
1
Je suis désolé gbgreg
mais cela n'a pas marché.

J'ai copié collé ton code et
remplacé "MonApplication" par "Project1.exe"
renommé le fichier texte en "Project1.Manifest" et
placé ce fichier dans le même repertoire que mon projet.

Mais voila j'ai les mêmes problèmes!!!!

Pour avancé je désactive l'UAC dans la base de registre cm indiqué sur

http://windows.developpez.com/faq/vista/?page=uac

c'est pratique cela évite de nombreux messages de confirmaton mais c'est pas optimum pour la portabilité.
Si tu as d'autres idées je suis preneur.
Je vais étudier de plus près le lien que tu m'as donné..