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 :

Lancer une app requireAdministrator avec app asInvoker


Sujet :

C#

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut Lancer une app requireAdministrator avec app asInvoker
    Bonjour,

    Bon je galère depuis pas mal de temps avec la possibilité d'utiliser une opération qui requiert les droits administrateur dans une appli utilisée par tout le monde.

    Le "requireAdministrator" étant non utilisable je décide de placer l'opération à réaliser dans un exécutable à part entière qui lui sera à "requireAdministrator".

    Pour le lancer j'utilise ce qui suit:
    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
     
    public string LaunchProcess(string workingDirectory, string software, string arguments)
            {
                string returnStr = null;
     
                try
                {
                    Process proc = new Process();
                    proc.StartInfo.WorkingDirectory = workingDirectory;
                    proc.StartInfo.FileName = software;
                    proc.StartInfo.Arguments = arguments;
                    proc.StartInfo.UseShellExecute = false;
                    proc.StartInfo.RedirectStandardOutput = true;
                    proc.StartInfo.CreateNoWindow = true;
                    proc.Start();
                    proc.WaitForExit();
                    returnStr = proc.StandardOutput.ReadToEnd();
                    proc.Close();
                }
                catch (Exception ex) { return null; }
     
                return returnStr;
            }
    Mais j'ai comme message d'erreur que je dois élever mon niveau...
    J'en conclu donc que ce niveau est défini par celui de mon appli.

    Comment lancer le processus sans que le niveau de mon appli soit prit en compte?

    Je ne sais pas si je me fais bien comprendre.
    Mais là j'arrive au bout de mes solutions.

    Ça me semblait la dernière option à adopter mais même celle là ne passe pas

    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il te manque ce bout là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    proc.StartInfo.Verb = "runas";
    (ca affichera le dialogue UAC bien sûr)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    C'est visiblement exactement ce que je veux, mais j'ai toujours le même message comme quoi j'ai besoin d'une élévation, erreur déclenchée sur:

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Avec ça ..
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.RedirectStandardOutput = true;
    proc.StartInfo.CreateNoWindow = true;
    ..en moins ça roule.

    Merci Tomlev.

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

Discussions similaires

  1. Lancer une commande système avec des "
    Par Caro-Line dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 15h17
  2. lancer une URL local avec des espaces dedans
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 05/09/2006, 21h26
  3. lancer une commande unix avec perl
    Par dm_manu dans le forum Langage
    Réponses: 1
    Dernier message: 02/08/2006, 19h41
  4. lancer une commande système avec jbuilder
    Par xs_nady dans le forum JBuilder
    Réponses: 1
    Dernier message: 28/03/2006, 04h54
  5. Lancer une commande système avec VC++
    Par xs_nady dans le forum MFC
    Réponses: 1
    Dernier message: 17/03/2006, 14h03

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