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

Windows Discussion :

ShellExecute et Service


Sujet :

Windows

  1. #1
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 74
    Points : 65
    Points
    65
    Par défaut ShellExecute et Service
    J'ai écrit un service qui doit lancer des applications (notepad.exe par exemple). J'utilise pour cela la fonction ShellExecute.
    Malheureusement, j'arrive à très bien utiliser cette fonction dans une application classique, mais lorsque je mets le code dans l'application Service, plus rien ne se passe. Pas moyen de débogger pour savoir ce qui ne va pas.
    Pour info, j'utilise la fonction MessageBox pour afficher les valeurs. Aussi, dans les paramètres du service, j'ai bien coché "Autoriser le service à interagir avec le Bureau". Sans cette option, je ne verrais pas les messages de MessageBox. Si ça peut aider.

    Merci pour votre aide.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    C'est pas une très bonne pratique d'interagir avec le Bureau pour un service.
    Il est exécuté depuis quel compte ton service ?
    Tu peux afficher des infos de débogage avec OutputDebugString.

  3. #3
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 74
    Points : 65
    Points
    65
    Par défaut
    Je ne connais pas la réelle fonction de l'interaction avec le Bureau.
    Le service que je souhaite réaliser sera lancé sur le serveur, avec donc les droits d'administration. Les applications qu'il lancera n'auront pas forcément une interface visuelle.
    Peut-être qu'il faut utiliser une autre fonction ou s'y prendre différemment.
    Toujours est-il que je n'arrive pas non plus à utiliser le retour de la fonction ShellExecute (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp)

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 376
    Points : 41 544
    Points
    41 544
    Par défaut
    Essaie peut-être ceci:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/starting_an_interactive_client_process_in_c__.asp
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 682
    Points
    10 682
    Billets dans le blog
    3
    Par défaut
    Un service est généralement lancé en tant que NT AUTHORITY\LocalService, il a plus de droits que l'administrateur, et est donc plus sensible aux attaques. Et le fait de le faire interragir avec le bureau l'expose justement dangereusement.
    Et alors lancer n'importe quel appli en tant que NT AUTHORITY, n'en parlons pas.
    De plus, il peut n'y avoir aucun bureau, ou plusieurs (en fonction des sessions utilisateurs), et il faut gérer ça dans ton service.
    Tourne toi plutôt vers CreateProcessAsUser / CreateProcessWithLogonW.

Discussions similaires

  1. naming service
    Par manuel dans le forum CORBA
    Réponses: 6
    Dernier message: 09/12/2002, 17h43
  2. Réponses: 2
    Dernier message: 18/11/2002, 09h12
  3. [VB6] Lancer un service, par exemple Sql Server
    Par fea dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 14h07
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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