IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Elévation des droits.


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 60
    Par défaut Elévation des droits.
    Bonjour

    J'ai un programme qui nécessite une élévation des droits sous Vista ou Seven (pour pouvoir écrire dans une clé HKLM de la base de registre).
    Le fait de demander aux utilisateurs éventuels de faire un clic droit sur le fichier .exe et de choisir "Executer en tant qu'administrateur" (ou bien de cocher la case "Executer ce programme en tant qu'administrateur" dans les propriétés) est généralement mal compris.
    J'ai provisoirement résolu le problème en ajoutant un fichier .manifest, mais cela me semble une "rajouture" peu élégante, et semble en plus avoir un ou deux effets secondaires indésirables.
    J'ai constaté que certains programmes (par exemple TuneUp Utilities) n'utilisent pas de fichier .manifest, et cependant la fenêtre de l'UAC s'ouvre automatiquement au lancement de l'exe, pour pouvoir autoriser l'augmentation des droits.

    Y a-t-il moyen de faire ça avec CppBuilder, par exemple en intégrant à l'exe l'ouverture automatique de cette fenêtre d'augmentation des droits ?

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Par défaut C++Builder ajoute ceci au ressource de l'exécutable, du moins avec les versions récentes de l'IDE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <assemblyIdentity
        type="win32"
        name="CodeGear RAD Studio"
        version="14.0.3513.24210" 
        processorArchitecture="*"/>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            publicKeyToken="???????????????????"
            language="*"
            processorArchitecture="*"/>
        </dependentAssembly>
      </dependency>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
          <requestedPrivileges>
            <requestedExecutionLevel
              level="asInvoker"
              uiAccess="false"/>
            </requestedPrivileges>
        </security>
      </trustInfo>
    </assembly>
    Le code est présent par contre il manque l'élévation de droit.

    Je ne sais pas quel version de C++Builder que tu utilises, mais y a moyen de créer un fichier .rc que tu peux incorporer a ton exe.

    Sinon, tu peux toujours modifier le exe avec Resource Hacker. Il faut modifier la section 24 / 1.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 60
    Par défaut
    Merci Crayon, ta réponse est bien utile.
    Je suis passé récemment de Builder-6 à Builder-XE, et je n'avais pas eu l'idée d'aller voir ce qu'Embarcadero rajoutait dans le fichier Ressource.
    Au lieu de modifier l'exe, j'ai modifié le fichier .RES (sans passer par un fichier .RC) en ajoutant donc la demande d'élévation de droits.
    Ça fonctionne impeccable : Je peux à présent lancer l'exe sans mettre de fichier manifest associé, et la fenêtre de l'UAC s'ouvre automatiquement pour permettre de valider l'élévation.
    Merci encore.

  4. #4
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2002
    Messages : 16
    Par défaut
    depuis ce matin, je découvre le sujet ...

    j'ai en effet réalisé un petit utilitaire qui permet de manipuler l'adressage IP du PC en utilisant "netsh" de Windows...

    mon prog (très pratique pour un fainéant comme moi qui a horreur de retaper manuellement les IPs à chaque fois qu'il change de contexte ) tourne très bien sous XP; mais ce matin je l'essaye sur Seven, et je découvre donc cette histoire d"exécuter en tant qu'admin"...

    - premier réflexe en lisant ce poste: j'édite mon fichier res, celui-ci est en binaire !

    - second réflexe: je prends le seul fichier structuré en XML de mon projet, qui est le *.cbproj, et je rajoute toute la section assembly montrée dans le code exemple

    (je précise que je suis sous C++Builder 2009)

    -> résultat: échec (prévisible)

    je te serais donc gré Alain de me dire où et comment il faut intervenir pour faire que mon prog tourne en admin sous 7, tel que tu l'as fait (j'imagine qu'il n'y a aucune incidence sur XP)...

    merci d'avance.

  5. #5
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Citation Envoyé par konfo Voir le message
    - premier réflexe en lisant ce poste: j'édite mon fichier res, celui-ci est en binaire !
    Est-ce que tu as utilisé Resource Hacker comme je l'ai mentionné plus haut?

  6. #6
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2002
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2002
    Messages : 16
    Par défaut
    pour être franc, je n'aime pas trop tourner autour des " * hack * ", je m'en méfie toujours un peu...

    mais comme tu as insisté sur le tool et avec un peu de recherche, j'ai résolu mon pb:

    - mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    level="requireAdministrator"
    au lieu de - résultat: mon prog demande à être lancé en admin au départ, et toutes les commandes que je lance depuis (batch netsh) passent comme une lettre à la poste...

    merci encore pour cet excellent topic, et si mon utilitaire intéresse, je serais ravi de le mettre à dispo (exe+source)...

    et bien sûr balise ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Elévation des droits via un script
    Par Valère dans le forum Windows 2000/Me/98/95
    Réponses: 2
    Dernier message: 01/03/2010, 17h29
  2. gestion des droits d'accès : pg_hda.conf et autres
    Par Pigoulou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 12/02/2005, 07h57
  3. Gestion des droits
    Par totop dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/01/2005, 09h49
  4. Gestion des droits d'accès
    Par soulryo dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/01/2005, 10h50
  5. Configuration des droits pour samba avec ftp et www
    Par Alkmie dans le forum Réseau
    Réponses: 2
    Dernier message: 07/11/2004, 13h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo