2010-11-25 11 views
13

J'ai un C++ méthode (en utilisant Visual Studio, si elle aide) qui appelle à cmd comme ceci:Comment appeler CMD sans ouvrir une fenêtre

start \B example.exe arg1 arg2 arg3 

Le problème est que cet appel ouvre un (cmd) fenêtre. Si j'ai un autre cmd ouvert, \ B fonctionne, mais sinon, il ouvre une nouvelle fenêtre.

J'ai aussi essayé sans début \ B mais il est le même ....

Je veux éviter cette nouvelle fenêtre, mais je ne sais pas comment. Une idée?

+1

Vous avez besoin de '/ b' pour que le commutateur ait un effet. Votre slash est dans le mauvais sens. – Joey

Répondre

0

Il suffit d'appeler sans début:

example.exe arg1 arg2 arg3 
+0

Cela ne fonctionne pas pour moi .... :(J'ai un projet C++ d'où j'appelle cmd – legami

1

Comment l'utilisation WSH au lieu d'un CMD Prompt?

Vous pouvez utiliser le .Run, 0 pour masquer la fenêtre comme:

Set objShell = WScript.CreateObject("WScript.Shell") 
isHidden = 0 'change 0 to 1 to show the CMD prompt 
objShell.Run "%comspec% /c myfile.bat", isHidden 
2

Essayez ShellExecuteEx, réglage nShow = SW_HIDE.

+0

Qu'est-ce qui ne va pas dans ceci? Il montre toujours l'invite de commande ShellExecute (0, 0, L "https: // www.google.com/ ", 0, 0, SW_HIDE); – nsp

7

Je ne sais pas comment le faire en C++, mais d'ouvrir une nouvelle fenêtre d'invite de commande qui est également réduite au minimum (ou « caché ») en utilisant un fichier batch i utiliser:

start /min cmd 

Ou si vous commencez l'invite de commande, vous pouvez taper:

@echo off 
cls && start /b cmd 

Cette opération redémarre la commande en cours avec fenêtre d'invite à le fermer, mais toutes les variables d'environnement définies précédemment sont remis à zéro. J'espère que cela t'aides!

(PS. Cela a été testé et a réussi sur Windows 7 Ultimate OS)

+1

cette méthode fonctionnera – daniel11

+0

cela apparaît encore pour une fraction de seconde – J3STER

5

Vous pouvez utiliser le commutateur

cmd.exe /c dir/b 

"/ C" cela va exécuter la commande "dir/b" et exit-- aucune fenêtre ne sera affichée, mais si vous voulez éteindre l'ECHO, utilisez le commutateur "/ q"

cmd.exe /c/q dir 
Questions connexes