PDA

Visualizza la versione completa : [C++] Ottenere output di applicazione Console lanciata con ShellExecute


VisRoboris
06-05-2012, 09:46
Salve!
Ho un'applicazione console che esegue due operazioni a seconda dei parametri di apertura e mostra a schermo alcune linee di risultato.
Da una seconda applicazione in C++ vorrei sfruttare le potenzialitą della prima senza mostrare che si tratta di un altro programma.
Utilizzo ShellExecute(MainWindow,"open","C:\\test\\console_app.exe","parametri","C:\\test",SW_HIDE);
e riesco pił o meno a fare quello che volevo.
Mi interesserebbe anche mostrare il risultato che l'applicazione console (avviata di nascosto) stampa a schermo. Vorrei poter leggere quelle linee e mostrarle, magari con un MsgBox dall'applicazione principale, quella che esegue lo ShellExecute specificato prima.
Come potrei fare?

VisRoboris
06-05-2012, 13:59
Problema risolto, mi sono fatto un'interfaccia in CSharp con cui uso questo codice:
Process p = New Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.FileName = "C:\test\c++.exe";
p.StartInfo.WorkingDirectory = "C:\test";
p.StartInfo.Arguments = "args";
p.StartInfo.CreateNoWindow = true;
p.Start();
//Per leggere il testo
String text = p.StandardOutput.ReadtoEnd();

VisRoboris
08-05-2012, 16:32
PEr amor di completezza posto anche questo, lo stesso problema risolto in c++:
http://msdn.microsoft.com/en-us/library/ms682499%28v=vs.85%29.aspx

Loading