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

Windows Discussion :

empecher l'ouverture de la fenetre DOS sous windows


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut empecher l'ouverture de la fenetre DOS sous windows
    Bonjour,
    Je lance depuis un programme en C++ et par l'intermédiaire d'une commande - que je fais passer par system("nom_de_la_commande") - un exécutable.
    Y a-t-il un moyen pour empecher l'ouverture de la fenetre DOS qui accompagne l'appel à system() ??

    Merci d'avance =)

  2. #2
    Membre habitué
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Points : 186
    Points
    186
    Par défaut
    un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ::ShowWindow( ...hwnd... , SW_HIDE);
    Par contre je ne sais pas comment on récupère le handle de la console...

  3. #3
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    Citation Envoyé par fairlight
    que je fais passer par system("nom_de_la_commande")
    system() est à éviter !!!
    je ne sais pas sur quelle plateforme tu bosse, mais tu dois avoir une API de ton OS qui te permet de lancer une appli sans passer par system().

    par exemple, sous windows :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ::ShellExecute(NULL, "open", "monPath\\monExe.exe", NULL, NULL, SW_SHOW);

  4. #4
    Membre habitué
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Points : 186
    Points
    186
    Par défaut
    Bonne remarque de la part de toxcct...
    Ca me fait pensait a un de mes bout de code qui traine... si ça peut aider...

    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
      // Ligne de commande :
      string cmdLine = "ligne de commande...";
      // Création d'un buffer pour la ligne de commande : (pas obligé de passer par boost)
      scoped_array<char> cmdLineBuffer(new char[cmdLine.size() + 1]);
      copy(cmdLine.data(), cmdLine.data() + cmdLine.size() + 1, cmdLineBuffer.get());
      // Information sur le demarage du process : (cf MSDN)
      STARTUPINFO startupInfo;
      memset(&startupInfo, 0, sizeof(STARTUPINFO));
      startupInfo.cb          = sizeof(STARTUPINFO);
      startupInfo.dwFlags     = STARTF_USESHOWWINDOW;
      startupInfo.wShowWindow = SW_MINIMIZE;
      // Information sur le process : (cf MSDN)
      PROCESS_INFORMATION processInfo = { NULL, NULL, 0, 0 };
      // Lancement :
      if(FALSE == CreateProcess(0, cmdLineBuffer.get(), 0, 0, FALSE, CREATE_NEW_CONSOLE, 0, 0, &startupInfo, &processInfo)) {
        DWORD error = GetLastError();
        cout << "System error = " << error;
      }
      CloseHandle(processInfo.hThread);

Discussions similaires

  1. Empecher la pause de la fenetre dos
    Par Sylk dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 16/07/2008, 16h26
  2. Probleme recuperation fenetre DOS sous BCB
    Par Syl91 dans le forum C++Builder
    Réponses: 14
    Dernier message: 24/09/2006, 19h32
  3. Probleme recuperation fenetre DOS sous BCB
    Par Syl91 dans le forum C++
    Réponses: 11
    Dernier message: 22/09/2006, 11h13
  4. Réponses: 6
    Dernier message: 03/09/2006, 19h45
  5. [VBS] Empecher la fermeture de la fenetre Dos
    Par jayce007 dans le forum VBScript
    Réponses: 6
    Dernier message: 22/06/2006, 10h32

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