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

Dotnet Discussion :

[G][Service Win.] exécution logiciel depuis service


Sujet :

Dotnet

  1. #1
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut [G][Service Win.] exécution logiciel depuis service
    Juste une question....le doute m'assaille :
    je veux (j'ai) développer un service windows qui scrute toute modification dans un répertoire donné.
    A chaque fois qu'un fichier est ajouté, il regarde si son nom correspond à une regexp donnée. Si le fichier correspond à ma regexp (fichier zip), je voudrais ouvrir un logiciel.
    J'arrive à identifier les fichiers qui correspondent à ma regexp mais après impossible d'exécuter un logiciel (que je lance avec process.start()).

    ôtez mon doute SVP....est-il possible d'exécuter un logiciel à partir d'un service windows?

    J'attends vos réponses, si vous me dites que oui je mettrai mon code pour voir d'où peut venir mon erreur...merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 85
    Points : 62
    Points
    62
    Par défaut
    Bien sûr que c'est possible! La méthode que tu utilises est même la bonne normalement...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 20
    Points : 36
    Points
    36
    Par défaut
    C'est possible, mais il y'a quelques contraintes:

    Un service qui tourne ne bénéficie pas des mêmes "avantages" qu'un logiciel qui tourne dans une session windows. Si en plus on lance un logiciel à partir de ce service, il va tourner avec sous l'identité du process qui fait tourner le service.

    Dans la console "services", bouton de droite, Propriétés, onglet "Connexion", on peut définir un compte utilisateur destiné à faire marcher le service.

    Certains logiciels ont besoins d'interagir avec le desktop. Celà ne peut se faire qu'en faisant tourner le service qui les lance avec le Compte Système Local, en cochant "autoriser le service à interagir avec le bureau".

    Il y'a encore d'autres choses, mais pourrais-tu déja essayer ça ? A moins que tu ne l'aies déja fait ?

  4. #4
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    Merci pour cette réponse qui en effet répond à ma demande initiale.
    Il fallait en effet mettre dans la source de l'installeur la ligne suivante :
    serviceProcessInstaller.Account = ServiceAccount.LocalSystem et une fois le service installé bien cocher la case "Autoriser le service à interagir avec le bureau".

    J'avais un autre souci avec l'exécution du programme zip (passage d'argument). Au début je lançais directement avec Process.Start (exe,argument) mais ça ne fonctionnait pas.
    je suis passé avec ProcessStartInfo() ou je configure mon rep de travail, les arguments...
    bref maintenant c'est OK

    Désolé de ne pas vous avoir tenu au courant

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Citation Envoyé par ControlBreak
    C'est possible, mais il y'a quelques contraintes:

    Dans la console "services", bouton de droite, Propriétés, onglet "Connexion", on peut définir un compte utilisateur destiné à faire marcher le service.

    Certains logiciels ont besoins d'interagir avec le desktop. Celà ne peut se faire qu'en faisant tourner le service qui les lance avec le Compte Système Local, en cochant "autoriser le service à interagir avec le bureau".
    J'aimerais suivre tes conseils mais je ne vois pas comment tu ouvres la console "services" ?

    Dans mon service, j'ai dans une sub timer_elapsed

    process.start"c:\t.exe"
    t.exe s'exécute (je le vois dans mes processus windows), mais alors que je m'attend à ce qu'il m'envoie un messagebox "toto", qu'il écrive dans un fichier txt et puis qu'il se ferme, pas de message ni de log et il reste dans mes processus.

    Mon t.exe est un projet de type "application windows" que je termine avec la commande , peut-être n'est-ce pas la meilleure idée ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Je cherchais la console "services" dans Visual studio... Alors qu'il suffit de lancer "Services.msc" dans la commande exécuter de windows. (ou alors de d'aller dans le paneau de configuration.

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

Discussions similaires

  1. [G][Service Win.] Enregistrer à l'install
    Par bilb0t dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 19/08/2009, 16h01
  2. Réponses: 3
    Dernier message: 21/11/2006, 22h05
  3. Réponses: 1
    Dernier message: 22/09/2006, 10h55
  4. Réponses: 1
    Dernier message: 31/08/2006, 09h02
  5. Réponses: 1
    Dernier message: 02/08/2006, 16h18

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