Bonjour,
Mon application doit s'exécuter sous Windows 7 et en administrateur pour pouvoir lire dans la base de registre. Comment puis-je faire la démarrer en mode Admin, et sans chaque fois demander l'autorisation ?! (est-ce possible?)
Bonjour,
Mon application doit s'exécuter sous Windows 7 et en administrateur pour pouvoir lire dans la base de registre. Comment puis-je faire la démarrer en mode Admin, et sans chaque fois demander l'autorisation ?! (est-ce possible?)
Non, ce n'est pas possible. Tout le principe de l'UAC c'est que l'utilisateur doive systématiquement donner l'autorisation pour modifier le système.Coment puis-je faire la démarrer en mode Admin, et sans chaque fois demander l'autorisation ?! (est-ce possible?)
La seule façon de lancer une appli avec les droits admins sans qu'elle demande l'autorisation, c'est qu'elle soit elle-même lancée par une application qui a déjà effectuée l'élévation de privillège.
Par contre, tu peux créer le manifest pour dire que ton appli nécessite les droits administrateurs. l'UAC demandera l'autorisation de modifier le système à chaque lancement, mais l'utilisateur n'aura pas besoin de faire "exécuter en tant qu'administrateur" à chaque fois.
Une alternative éventuelle serait d'isoler les fonctions qui nécessitent les droits admins dans un service windows dédié. Puis de faire appel au service depuis ton application. Mais ça reste à tester.
D'accord, merci pour votre réponse.
Je suis coincé alors, faut alors que j'impose à l'utilisateur final de désactiver l'UAC.
Sous 7 (ou Vista peut-être) est-il nécessaire pour lire dans la base de registre d'être en Admin ?
(EDIT) : je viens de voir les infos sur l'UAC et Delphi (http://fsoriano.developpez.com/) et les autres sources. J'en ai appris des trucs, mais je ne règle rien !
Je n'ai pas écrit d'article sur l'UAC.
Par contre tu as un tuto de Pascal Fonteneau sur l'UAC
Pour la lire non. A condition de bien y accéder en mode lecture-seule. Autrement dit, fait des OpenKeyReadOnly et pas des OpenKey, ou crée le composant TRegistry en mode lecture seule.Sous 7 (ou Vista peut-être) est-il nécessaire pour lire dans la base de registre d'être en Admin ?
De plus tu peux lire et écrire sans restrictions dans HKEY_CURRENT_USER.
En fait, je faisais référence à votre article sur D2010 et la barre des tâches, qui lui m'a conduit à un article ici : http://pascalfonteneau.developpez.co...phi/vista/uac/Je n'ai pas écrit d'article sur l'UAC.
Merci pour la solution, je vais la tester.
Salut
Cool, j'ai mis les donnés que je voulais sous HK_CURRENT_USER, et ça marche très bien, sans nécessité d'élévation de privilèges.
Ainsi mon application est maintenant 100% (ou presque) compatible Windows 7.
Merci bien pour votre aide !
L'application n'a pas besoin de droits plus élevés que l'utilisateur courant pour lire dans la base de registre les données le concernant.
En revanche, pour lire d'autres registres, les droits d'administrateur peuvent être requis.
En déplaçant ses données au niveau du registre de l'utilisateur courant, on s'abstrait des demandes d'élévation de privilèges.
Il n'y a pas besoin d'exposer du code, mais de lire/écrire dans la BdR au niveau des clefs HK_CURRENT_USER.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager