2009-01-22 16 views

Respuesta

4

Eso no es posible. ShellExecute (Ex) básicamente ejecuta la aplicación en el contexto del shell, por lo que básicamente está haciendo lo que hace el explorador.

La captura de entrada y salida estándar es algo que la cáscara generalmente no lo hace, usted tendrá que ir a la ruta CreateProcess (que, después de todo, es lo que llama ShellExecute finalmente si el archivo a ejecutar es un programa y es el verbo 'abierto').

4

No. La única forma de hacerlo es usar CreatePipe y CreateProcess. Consulte el artículo de MSDN here

5

Yo solía encontrar el problema como tú.

Supongamos, que desea capturar la salida de la salida estándar que se genera por dir comando y guardar la capturaron en out.txt.

  1. editor de texto y escriba Uso dir> out.txt y guardarlo con mybat.bat (* .bat, no * .txt)

  2. En el C/C++ programa, tipo WinExec ("mybat.bat", SW_HIDE); y ejecuta tu aplicación.

  3. Abra out.txt Verá el nombre de las carpetas y archivos en el directorio actual.

Además, puede ejecutar cualquier archivo ejecutable (* .exe) de la misma manera que a continuación.

xxx.exe> ​​out.txt

espero que pueda ser usted ayuda. Lo siento, mi inglés realmente no es bueno.

Cuestiones relacionadas