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 :

Savoir si mon appli est un service windows


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Points : 24
    Points
    24
    Par défaut Savoir si mon appli est un service windows
    Bonjour,

    j'utilise une méthode commune à plusieurs applications pour pouvoir me connecter à ma BDD. Et parmi ces appli, il y a des services windows (qui peuvent donc tourner en session fermée), ce qui m'obligent à ne pas faire tout à fait la même chose dans mon code. Donc je voulais savoir si je pouvais détecter ca. (et surtout comment ^^ )

    Au final, j'aimerais avoir un truc qui ressemblerait à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (Application.IsUnService)
    {
     // faire le code specifique là
    }
    else
    {
     // faire autre chose ici
    }
    J'ai cherché dans System.Windows.Forms.Application mais je n'ai pas trouvé mon bonheur.
    Et pour l'instant, je contourne le problème en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (System.Environment.UserName == "SYSTEM")
    mais c'est moche ...

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If System.Environment.UserInteractive
    si false alors pas d'interaction possible donc on peut considérer que c'est un service

    je m'en sert pour faire l'install des services incluse dans l'exe
    si je suis en userinteractive, je n'exécute pas le onstart (enfin en gros) et j'affiche l'état du service dans un form (installé ou non, running ou non) avec des boutons pour installer/désinstaller, démarrer/arreter
    en cas de userinteractive à false, le onstart est appelé et pas le form

    (y a tout ce qui faut dans le framework pour manager les services)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Ok, ca me parait déjà plus propre. Je vais tester ca.

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Le problème du System.Environment.UserInteractive, c'est que comme je coche "Autoriser le service à intéragir avec le bureau", cette variable vaut True.

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    en meme temps cocher cette case c'est une belle connerie
    un service c'est un service, si on veut voir quelque chose on ne fait pas un service
    sur un OS multi session, comment ton exe sait à quelle session il doit parler

    si on veut afficher quelque chose en rapport avec le service, on fait un exe qui dialogue avec le service
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Je dois cocher cette case pour avoir une icône visible dans la systray.

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    je me doute que c'est pour un bricolage oui
    sql server par exemple, c'est un service, l'icone du systray qu'on trouve sur sql server 2000 c'est un exe qui ce lance au démarrage de chaque session qui dialogue avec le service pour connaitre l'état
    et sql server studio management c'est un exe graphique qui dialogue avec le service

    un service ne doit rien afficher ce n'est pas propre ...
    (je veux bien croire que ca simplifie la vie)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Comment savoir si l'appli est déjà lancée?
    Par ®om dans le forum Général Java
    Réponses: 12
    Dernier message: 10/10/2006, 13h17
  2. Comment savoir si mon navigateur est ouvert ?
    Par Chris33 dans le forum Réseau/Web
    Réponses: 8
    Dernier message: 18/07/2006, 14h51
  3. Réponses: 4
    Dernier message: 19/06/2006, 14h52
  4. Réponses: 9
    Dernier message: 29/04/2006, 13h15
  5. [Sécurité] Savoir si mon visiteur est un humain
    Par toure32 dans le forum Langage
    Réponses: 8
    Dernier message: 08/01/2006, 15h13

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