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

Plateformes Discussion :

UAC : comment l'éviter ? [Windows]


Sujet :

Plateformes

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut UAC : comment l'éviter ?
    Je me suis cassé la tête des heures pour trouver un problème qui est en fait lié au fait que mon application réclame des droits administrateurs pour se lancer. Alors que je n'y ai mis aucun manifest ni rien pour ça.

    C'est une application qui contient une fonctionnalité spéciale pour Windows 7+ (barre d'avancement dans le bouton de la barre des tâches), qui utilise les messages systèmes. Or, en mode administrateur, certains messages sont apparemment filtrés, donc ça ne fonctionne plus.

    J'aimerais savoir pourquoi est-ce que l'UAC se manifeste (huhu) pour réclamer les droits administrateur, et comment l'enlever... Est-ce que Qt génère secrètement un manifest lorsqu'on utilise certaines fonctionnalités ? Est-ce que c'est par contamination d'une dépendance, une dll, qui a besoin des droits admin ?

    Je mets mon projet en pièce jointe, le code date un peu (j'étais débutant, c'est pas beau) mais c'est tout petit. C'est un logiciel d'installation facile de la dernière build de Chromium sur Windows.
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Pouvez-vous préciser à quel endroit les droits sont demandés ? Au lancement ?
    Un moment, j'ai pensé que c'était à cause du dossier d'installation. Dans les dossiers utilisateurs, les droits ne sont pas demandés, normalement.
    De plus il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetFileAttributes ( installer.fileName().toStdWString().c_str(), FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM );
    même si je ne pense pas que cela soit très grave.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Le petit bouclier est affiché sur l'exécutable, ça demande donc des droits administrateur au lancement.

    J'ai testé, cette ligne de code n'est pas en cause.

    C'est un .exe portable qui crée juste un .ini à côté, donc y'a pas de lieu d'installation.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    Les fonctions dans winutils.h sont elles utilisées ? Pouvez-vous les retirer (quitte à retirer le fichier du projet) pour voir si cela est mieux ?
    Il y a une fonction, je sais pas encore laquelle, qui fait que cela ne convient pas à Windows. Sinon, dans quel dossier compilez vous ? un dossier "utilisateur" ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Par défaut
    Comme t'as l'air persuadé que ça vient forcément de ce que j'ai compilé (bien que je pensais avoir tout vérifié), je suis repassé sur mon projet, cette fois en faisant bien des qmake/recompiler.

    Et le coupable est (dans le fichier .rc) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            BLOCK "VarFileInfo"
            BEGIN
                VALUE "Translation", 0x40c, 1200
            END
    1200 = Unicode
    1252 = Multilingual

    En remplaçant 1200 par 1252, le problème est résolu. Le simple fait d'indiquer un mauvais charsetID (je ne suis pas sûr de comprendre en quoi il était mauvais) provoque le bouclier "droits admin", et souvent aussi la fenêtre qui demande si le programme s'était installé correctement (preuve qu'une anomalie a été détectée).

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 129
    Billets dans le blog
    149
    Par défaut
    J'avais rencontré la levée de bouclier une fois et donc, j'avais recherché sur le sujet, mais de là à trouver que ce soit ce truc là
    Bon, bah tant mieux, y a plus qu'à sauvegarder cette information dans un coin de notre tête, pour les prochaines fois
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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

Discussions similaires

  1. 2 variables qui pointent vers les mêmes valeurs: comment l'éviter?
    Par skystef dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 03/04/2008, 11h51
  2. Logiciel de filtre web. Comment les éviter
    Par babemagus dans le forum Applications
    Réponses: 3
    Dernier message: 03/03/2006, 17h38
  3. Problemes de doublons...comment les éviter?
    Par paflolo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/02/2006, 14h57
  4. Réponses: 8
    Dernier message: 16/06/2005, 13h58
  5. Fonction template virtuelle... comment l'éviter ?
    Par :Bronsky: dans le forum Langage
    Réponses: 12
    Dernier message: 07/06/2005, 14h21

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