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++/CLI Discussion :

lancer un programme C++ en background


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Avril 2008
    Messages
    103
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Par d�faut lancer un programme C++ en background
    bonjour

    j'ai cr�e un programme en c++ et je veux lance le .exe en arri�re plan comme un precess pour ne pas d�ranger les utilisateur.

    est ce qu'il y a une m�thode pour faire �a?
    merci

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 508
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 508
    Par d�faut
    S'il n'a pas besoin d'un utilisateur connect�, faites en un service Windows, si c'est sous Windows bien s�r.
    http://en.wikipedia.org/wiki/Windows_service

  3. #3
    Membre confirm�
    Inscrit en
    Avril 2008
    Messages
    103
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Par d�faut
    mon script s�ex�cute apr�s l'ouverture du session d'un utilisateur

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 508
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 508
    Par d�faut
    Je ne vois pas trop le probl�me.
    Tout programme non console qui n'ouvre pas de fen�tre est dans ce cas de figure.

  5. #5
    Membre confirm�
    Inscrit en
    Avril 2008
    Messages
    103
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 103
    Par d�faut
    je vais �clairer le chose
    j'ai cr�e un programme en c/c++ sous windows qui s�ex�cute au lancement d'une session windows ce programme se connecte sur une base de donn�es MYSQL pour ins�rer (login utilisateur,nom du machine,ip adresse,date_heure se connexion) et sur mon programme j'ai rajout� une fonction qui s�ex�cute chaque 5 sec pendant 30 min si le poste agent n'arrive pas a se connecter � la base de donn�es pour ins�rer les donn�es et mon probl�me ce que le fen�tre dos reste afficher devant les yeux de l'utilisateur chose qui emp�che son travail et aussi il peut la fermer avant de terminer le programme
    ma demande est ce je peux lancer mon programme en arri�re-plan comme ?si oui c'est quoi la m�thode
    voila mon code c/c++
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    #include <stdafx.h>
    #include <conio.h>
    #include <winsock.h> 
    #include <mysql.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <string>
    #include <iostream>
    #include <assert.h>
    #include <windows.h>
     
    int main(int argc, char **argv)
     
    {
     
             char* adr;
             char req [400];
     
           adr=(argv[1]);
     
     
        char* us;
        us=getenv("USERNAME");
           char* co;
        co=getenv("COMPUTERNAME");
     
    char *ip;
     
     
      MYSQL *conn;
    char id[64]= {"0"}; ;
    int k=0;
    stop:
      conn = mysql_init(NULL);
      if( mysql_real_connect(conn, "127.0.0.1", "login", "pass", "user", 0, NULL, 0) == NULL) {
     
          k++;
     
          Sleep(5000);
          if (k==360){
        exit(1);
    }
        else{
            printf("%d",k);
               goto stop;
               }
     
          }
    else {
     
    strcpy (req, "INSERT INTO collecte_login(ID,MATRICULE,ACTION,IP,DESK,STAMP) VALUES ('0',");
    strcat (req, "'");
    strcat (req, us);
    strcat (req, "',0,'");
    strcat (req, adr);
    strcat (req, "','");
    strcat (req, co);
    strcat (req, "',NOW())"); 
    mysql_query(conn,req);
    mysql_close(conn);
    }
     
    }

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 508
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 508
    Par d�faut
    Vous cherchez midi � 14 heures.

    mon probl�me ce que le fen�tre dos reste
    Il n'y a plus de fen�tre DOS sous Windows depuis au moins 17 ans (Win95).
    Ce n'est pas une fen�tre DOS mais une console, donc

    Tout programme non console qui n'ouvre pas de fen�tre est dans ce cas de figure.
    Vous �tes dans un programme console.
    Assez logique avec une signature C d'il y a 40 ans :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int main(int argc, char **argv)
    Cr�ez un projet Win32 NON CONSOLE, le nom du point d'entr� sera tr�s vraisemblablement WinMain et non main.

    P.S.: moi, j'aurais pench� vers l'utilisation des fonctionnalit�s int�gr�es d'Active Directory plut�t que ce bricolage.
    http://technet.microsoft.com/en-us/l.../bb742436.aspx

  7. #7
    Inactif  

    Homme Profil pro
    Ing�nieur test de performance
    Inscrit en
    D�cembre 2003
    Messages
    1 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur test de performance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 986
    Par d�faut
    Bonjour.

    Citation Envoy� par zaki_1982 Voir le message
    bonjour

    j'ai cr�e un programme en c++ et je veux lance le .exe en arri�re plan comme un precess pour ne pas d�ranger les utilisateur.

    est ce qu'il y a une m�thode pour faire �a?
    merci
    Il y a deux m�thodes et Bacelar les a donn� : un service ou une application Win32 qui n'affiche pas sa fen�tre.

    Pour le service, il suffit de faire une boucle et d'attendre que l'utilisateur soit logg�.

    Pour l'application Win32, utiliser un timer.

    PS : si le but de votre programme, c'est de scruter les logging des utilisateurs, vous avez ces informations dans le journal d'�v�nements Windows... Suffit de r�cup�rer ces journaux.

  8. #8
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 508
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 508
    Par d�faut
    Pour l'application Win32, utiliser un timer.
    Tr�s moyen comme approche, une t�che planifi�e, c'est mieux, et les logs sont automatiquement g�n�r�s dans le journal d'�v�nements Windows.
    Moi, fain�ant, et fi�re de l'�tre.

  9. #9
    Inactif  

    Homme Profil pro
    Ing�nieur test de performance
    Inscrit en
    D�cembre 2003
    Messages
    1 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur test de performance
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 1 986
    Par d�faut
    Bonjour Bacelar.

    Je veux bien croire qu'il y a de meilleures approches. Mais de l� � dire que c'est tr�s moyen, un malheureux petit timer de 5 secondes

    PS : je le prends au second degr�...

  10. #10
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 508
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 508
    Par d�faut
    Alors l'approche timer :
    - non partage du scheduling syst�me : gaspillage de ressource syst�me
    - plantage sur probl�me transitoire (connexion r�seau ...) : pas de logs automatique, pas de red�marrage automatique (celui qui me colle un try catch(...){}, je le baffe)
    - Int�gration dans une console de monitoring, monsieur le d�veloppeur, il va se la cogner � la main
    - les timers, c'est la vraie jungle et les plus fiable, c'est du multi-threading obligatoire, est-ce justifi� pour un pauvre programme basique ?
    - param�trage via un console standard que m�me Mme Michu peut maitriser, donc, a fortiori aussi un admin syst�me, m�me pas tr�s d�gourdi.
    - param�trage au niveau des scripts d'installations totalement customisable avec des primitives que notre cher admin syst�me connait sur le bout des doigts.
    ...
    Avec un scheduled task, j'ai aucun de ces inconv�nients et tout ces avantages GRATIS (0+0=0 ligne de code en plus ).

    Non, franchement, je ne vois aucun avantages aux timers "embarqu�s" pour une application de ce type, mais alors au niveau emmerdes, c'est pas mal.

    Mais je vois le mal partout (normal, je suis d�veloppeur et Murphy est mon ami ).

    moldavi, je suis tout ou�e pour entendre votre plaidoyer pour le timer embarqu� dans l'application.

Discussions similaires

  1. Lancer un programme a la Fermeture de Windows
    Par sali dans le forum Windows
    R�ponses: 2
    Dernier message: 01/07/2004, 22h54
  2. [LG]lancer un programme extérieur
    Par dsr57 dans le forum Langage
    R�ponses: 3
    Dernier message: 07/01/2004, 18h41
  3. Lancer un programme au d�marrage
    Par ludo_7 dans le forum Windows
    R�ponses: 7
    Dernier message: 09/10/2003, 16h29
  4. Lancer un programme, mais sur une autre machine
    Par GOUGOU1 dans le forum R�seau
    R�ponses: 12
    Dernier message: 08/12/2002, 20h36
  5. R�ponses: 8
    Dernier message: 05/06/2002, 11h55

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