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

Web & réseau Delphi Discussion :

Lancer une appli sur serveur distant


Sujet :

Web & réseau Delphi

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Lancer une appli sur serveur distant
    Bonjour,

    Je développe un service web en Delphi qui doit verifier sur plusieurs serveurs distants, l'état des services de BDD, des processus etc...

    Pour ça j'utilise des requêtes WMI.
    Maintenant je voudrais pouvoir agir directement sur les services et processus (arrêter / démarrer).
    Pour les services pas de pb...mais pour les processus, ils se lancent bien mais en console, il n' y a pas d'interaction avec le bureau...on voit le process tourner dans le gestionnaire mais rien n'apparait à l'écran.

    Il faudrait pouvoir le lancer dans une session, mais je n'arrive pas à trouver comment faire.

    merci pour vos réponses
    A+

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    bonjour,

    Sous quel OS travailles-tu ?
    si tu es sous une plateforme de type Linux, tu dois pouvoir envoyer la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    kill -3 <nom du processus>
    si tu es sous Windows (ce que je suppose), avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taskkill /f /im <nom du processus>
    tu dois pouvoir faire la même chose.
    Encore une fois, c'est de la ligne de commande, mais c'est la meilleure façon de gérer des processus qui par principe sont pour beaucoup exécutés en tâche de fond.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut lancer l'appli
    Merci pour ta réponse,

    oui, je suis bien sous windows...

    Mais mon problème se situe plus dans le lancement de l'appli pas dans l'arrêt.
    J'arrive à tuer un process mais je n'arrive pas à lancer ce process dans une session, c'est à dire à voir le process s'executer à l'écran.
    Je le vois tourner en tâche de fond mais pas à l'écran.

    voici le code de mon lancement de processus, si ça te parle:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Function CreateRemoteProcess(ServerName, wmiPath, wmiUser, wmiPasswod,Processus : String): Hwnd;
    var
      WmiService:  SWbemServices;
      ProcessID:   OleVariant;
      WMILocator:          TSWbemLocator;
      Process,
      NewProcess,
      Instance_inParameters:SWbemObject;
      WmiProperty:         SWbemProperty;
      ProcessMethod:       ISWbemMethod;
      PropertyCommandLine,
      PropertyReturnValue:       OleVariant;
    begin
      WMILocator:= TSWbemLocator.Create(nil);
      try
       try
         Result:=0;
         if wmiPath = cstEmpty then wmiPath := WMI_PATH;
         if wmiUser = cstEmpty then wmiUser := WMI_USER;
         if wmiPasswod = cstEmpty then wmiPasswod := WMI_PASSWORD;
     
         WmiService:= WMILocator.ConnectServer(ServerName, wmiPath, wmiUser, wmiPasswod, cstEmpty, cstEmpty, wbemConnectFlagUseMaxWait, nil);
         Process:=WmiService.Get('Win32_Process',0,Nil);
         ProcessMethod:=Process.Methods_.Item('Create', 0);
         Instance_inParameters:= ProcessMethod.InParameters.SpawnInstance_(0);
         WmiProperty:= Instance_inParameters.Properties_.Item('CommandLine',0);
         PropertyCommandLine:= Processus;
         WmiProperty.Set_Value(PropertyCommandLine);
         NewProcess:= Process.ExecMethod_('Create', Instance_inParameters, wbemFlagReturnWhenComplete, nil);
         PropertyReturnValue:= NewProcess.Properties_.Item('ReturnValue', 0);
         if PropertyReturnValue.Value = 0 then
           begin
            PropertyReturnValue:= NewProcess.Properties_.Item('ProcessId', 0);
            ProcessID:=PropertyReturnValue.Value;
            Result:=ProcessID;
           end
          else LogEvenement('!!!Erreur '+inttostr(PropertyReturnValue.Value)+' lors de la création du process.');
       Except
        LogEvenement('!!!Exception déclenchée lors de la création du process.');
       end;
      finally
        WMILocator.Disconnect;
        WMILocator.Free;
      end;
    end;

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Tu me demandais si ça me parlait, en fait sous cette forme non ! ^^

    est-ce que tu peux mettre une balise de code au début et à la fin de la partie que tu m'as envoyé et indenter ton code stp ?
    (je suis complètement incapable de lire le code non indenté)

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 549
    Points : 25 119
    Points
    25 119
    Par défaut


    Pour que l'application soit visible, faudrait que cela utilise la même session !
    Tu peux consulter la MSDN pour forcer les attributs ton application :
    The Win32_ProcessStartup abstract WMI class
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse.

    J'ai donc utilisé la classe WIn32_ProcessStartup... Mais bon, le résultat est toujours le même, à savoir que le process est bien lancé sur le serveur distant mais n'apparait pas à l'écran.

    Peut-être ai-je oublié qqchose d'important?
    je continue de chercher.

    merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/04/2009, 09h25
  2. Comment lancer une appli sur une machine distante
    Par J.Michel dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/09/2007, 13h00
  3. Installation d'une appli sur serveur Citrix
    Par Asdorve dans le forum Installation, Déploiement et Sécurité
    Réponses: 1
    Dernier message: 04/07/2006, 11h35
  4. [MySQL] Connection à une bdd sur serveur distant
    Par papyphp dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/03/2006, 21h13
  5. [VB6]Comment se connecter à une BD sur serveur distant?
    Par Chess0 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/10/2005, 21h11

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