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

  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
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par d�faut
    Une console � plus de 17 ans si ont rentre dans se type de petit d�lire

    Actuellement c'est une invite de commande ou l'emulation d'un terminal DOS

    Il y a une m�thode crade qui s'appel le Ghost.

    En gros tu fais un programme qui va forker ton programme que l'ont va appeler papa.

    En gros papa se termine salement sans fermer le fils et donc tu te retrouve avec un ghost soit un processus qui tourne sans r�el attache en gros.

  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
    jouana, ton second pr�nom c'est Hibernatus ???

    Actuellement c'est une invite de commande ou l'emulation d'un terminal DOS
    DOS n'a j'amais eu de terminal, c'est pas UNIX
    Et le prompt affich� par cmd.exe n'est pas une console TTY.

    jouana, tu m�langes tout et n'importe quoi.

    En gros tu fais un programme qui va forker ton programme que l'ont va appeler papa.

    En gros papa se termine salement sans fermer le fils et donc tu te retrouve avec un ghost soit un processus qui tourne sans r�el attache en gros.
    C'est bien, ranges ton grimoire du Moyen-age et rendor-toi.

    Ce truc, c'est de l'Unix des ann�es 60, et c'est pas parce que Windows �tait vaguement compatible POSIX 1 pour l'US Army, dans les ann�es 80/90, qu'il faut l'utiliser.

    P.S.: ce n'est pas un ghost, n'y m�me un zombi Unix, et il faut faire un d�tachement explicite de la console h�rit� par le programme parent. C'est dans les 3 premiers descripteurs de fichiers, si je me souviens bien de mes cours de pal�ontologie informatique.

  9. #9
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par d�faut
    Mouais les zombies sont encore utilis� sous linux et BSD.
    Enfin bon apr�s pas la peine d'�tre d�sagr�able j'offre une solution comme une autres.

    Ensuite penches toi sur la cr�ation de service windows, zaki_1982 tu devrais trouver ton bonheur.

    Et un terminal n'est pas propre � UNIX, c'est juste une interaction entr�e sortie, que tu retrouve sur beaucoup d'OS diff�rents, TTY en est un parmi beaucoup d'autres.

    Mais je te rejoins sur le fait que DOS n'est plus depuis windows NT et que l'ont a maintenant des �mulations de ce derniers.

  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
    que l'ont a maintenant des �mulations de ce derniers.
    NON
    Il n'y a RIEN de DOS dans Windows. RIEN RIEN RIEN m�me plus l'int�ruption 21, RIEN.

  11. #11
    Membre tr�s actif
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par d�faut
    Sans rentrer dans un grand d�bat la dessus un petit extrait de Wikipedia

    Windows XP qui en est la version 5.1, se passe presque int�gralement de la ligne de commande, et l'invite de commandes qu'elle propose n'est qu'un �mulateur, largement brid�, de MS-DOS.
    J'ai pas dit que c'�tait DOS mais que l'invite de commande est un �mulateur de DOS.

    Soit quelque chose qui imite le fonctionnement de DOS.

  12. #12
    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
    L'URL, s'il te plait, que j'aille corriger de ce pas.

    MS-DOS, c'est pas qu'un interpr�ter de commande qui fait clignoter un curseur avec les commandes du BIOS. Faut arr�ter de d�conner � un moment.

    Et il va contenir Linux quand je vais installer cigwin sur ma machine ?
    Non, mais ce que apr�s, les commandes "Linux", elle vont �tre comprise de l'interpr�ter de commande de Windows (Le PATH fait de petit miracle �mulatique ).
    Non, mais, ce qui faut pas entendre.

    Soit quelque chose qui imite le fonctionnement de DOS.
    Comme si un primate imite le fonctionnement d'une amibe.

    Enfin, tout �a pour faire un programme qui ne sert � rien puisque toutes ces informations sont d�j� dans l'Active Directory du domaine Windows.

  13. #13
    Membre exp�riment� Avatar de Vespiras
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2012
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2012
    Messages : 168
    Par d�faut
    Je me rappelle que pour avoir cr�� simplement un programme non-fen�tr�, j'avais compil� mon code en pr�cisant que c'�tait un processus, dans l'IDE Dev-C++, et compar� � un Code::blocks ou je ne sais quoi, comme par magie �a avait fonctionn�.

    D�sol� je ne me rappelle plus exactement comment j'avais r�alis� ceci, mais �a doit pouvoir se retrouver facilement, et comme j'ai plus DevC++ d'install� sur mon PC ...

    En tout cas tout ca pour dire que tu dois pas te compliquer la vie, normalement ca doit se faire comme ca.

    Cdt,
    Vespiras

  14. #14
    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
    "un processus" ou un service ?

    Et oui, ce n'est pas compliqu�, si on sait ce qu'on fait.

  15. #15
    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.

  16. #16
    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.

  17. #17
    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�...

  18. #18
    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