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# Discussion :

Application qui se lance en mode administrateur, mais pourquoi ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 131
    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 131
    Billets dans le blog
    150
    Par défaut Application qui se lance en mode administrateur, mais pourquoi ?
    Bonjour à tous,

    J'ai une application qui, sous W7, possède l’icône du bouclier et qui donc, pour se lancer, demande les droits administrateur.

    Je ne le veux pas. Enfin, pas à ce moment là. Du coup, j'aimerai savoir quelle sont les morceaux de code qui nécessite vraiment ces droits, afin de les modifier et donc, de me passer de ces droits.

    En fait, peut être que vous allez pouvoir répondre à ma question autrement.
    J'utilise Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) mais comme mon programme se retrouve sous un autre utilisateur (l'administrateur), ce code ne retourne pas le bon chemin (chemin pour l'utilisateur).
    Est ce que je dois utiliser une autre technique, pour récupérer le chemin du menu démarrer ?

    (Note : J'essaie de me limiter à .NET v2 et je dois être compatible avec les Windows XP)

    Merci beaucoup
    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.

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Que souhaites-tu faire exactement ?

    As-tu essayé la valeur CommonStartMenu de l'enum Environment.SpecialFolder ?

    Je suppose que comme il s'agit d'un répertoire qui n'appartient pas à l'utilisateur courant, il faut les droits d'admin pour le modifier.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 131
    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 131
    Billets dans le blog
    150
    Par défaut
    As-tu essayé la valeur CommonStartMenu de l'enum Environment.SpecialFolder ?
    Hum, cela n'est pas accessible en .NET v2 .
    J'aime bien l'idée du CommonStartMenu, mais cela ne me va pas .

    Je suppose que comme il s'agit d'un répertoire qui n'appartient pas à l'utilisateur courant, il faut les droits d'admin pour le modifier.
    Je suis bien d'accord, mais j'aimerai connaître la ligne qui me force les droits d'administration. Ce qui m'inquiète encore plus, c'est que W7 le sait avant le lancement, que j'ai besoin des droits.

    Mon programme est un installateur (il dézippe un fichier, lance un sous installateur). Comme l'utilisateur a le droit de l'installer où il veut, je ne sais pas comment il fait sa détection.
    Du coup, j'aurai aimé avoir une sorte d'option qui me mets des warnings pour chaque ligne qui nécessite les droits.
    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.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 131
    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 131
    Billets dans le blog
    150
    Par défaut
    Bon, pour savoir les lignes qui forcent le mode administrateur, je n'ai pas vraiment trouver.
    Par contre, j'ai réussi à répondre à mon problème sur comment on trouve le chemin du menu démarrer (merci StackOverflow et Google). La méthode, en .NET v2.0, universelle XP / 7 c'est :
    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
     
    [DllImport("shell32.dll")]
    private static extern int SHGetFolderPath(
         IntPtr hwndOwner, int nFolder, IntPtr hToken,
         uint dwFlags, StringBuilder pszPath);
     
    public static string GetCommonDesktopFolder()
    {
         var sb = new StringBuilder(260);
         SHGetFolderPath(IntPtr.Zero, 0x16, IntPtr.Zero, 0, sb); // CSIDL_COMMON_DESKTOPDIRECTORY
         return sb.ToString();
    }
     
    // Utilisation
    string starMenuFolder = GetCommonDesktopFolder() + @"\Programmes\";
    J'avoue, c'est sale

    Quelqu'un, sur le chat, m'avez conseillé de récupérer dans les variables d'environnement, le ALLUSERPROFILE (ou un truc du genre, vu que je n'ai plus la ligne exacte). Mais cela ne marche pas à 100%, car sachant qu'il y a des différences entre XP et 7, il n'est pas possible de récupérer le chemin précis.
    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 éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    LittleWhite
    Salut,

    Je ne suis pas sur que ce que je vais dire soit très utile mais bon :
    - j'ai pas pigé, mais si ce que tu exécutes demande les droits d'admin il y a plusieurs possibilité: l’exécutable (ou ce qui dezip et s’exécute) se nomme "setup.exe" ou "install.exe" , je crois que W7 demande automatiquement les droit d'admin avec ce nommage spécifique. (c'est peut etre la raison que tu ne trouve pas de code spécifique héhé)
    Sinon dans les propriétés du fichiers il y a coché "executer en tant qu'admin", mais ca je pense que t as du vérifier

    voila my 2cents

    EDIT:
    Après relecture je pense que la réponse sur le fameux "setup.exe" peut t aider , c'est normal que sans rien faire avec un tel nomage W7 demande les droits d'admin... la solution c'est de renommer ce fameux fichier

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 131
    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 131
    Billets dans le blog
    150
    Par défaut
    Mon programme s'appelle SDInstaller.exe ... et l'autre programme SDUninstaller.exe. Le premier demandé les droits d'administration de base, l'autre non. Bon, j'ai feinté, car le deuxième avec besoin des droits mais il a juste fallu que je rajoute un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Proc.StartInfo.Verb = "runas"
    (Oui, je faisais un truc un peu spécial )
    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. application qui se lance au démarrage
    Par paolo2002 dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 30/10/2009, 11h40
  2. Réponses: 1
    Dernier message: 09/10/2009, 16h11
  3. Trouver l'application qui a lancé word
    Par perclout dans le forum VBA Word
    Réponses: 2
    Dernier message: 20/10/2008, 11h01
  4. Application qui se lance au démarrage du device
    Par jayado dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 12/03/2008, 22h33
  5. Création d’une application qui se lance au démarrage
    Par faten7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/04/2006, 20h10

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