|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2004
Messaggi: 139
|
[C++] Eseguire programma esterno
Salve a tutti. Ho un programma scritto in visual c++. Avrei l'esigenza di mandare in esecuzione un programma .exe esterno. Come posso fare?
|
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
includi <cstdlib>, <cstdio> e chiama la funzione system
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Oppure puoi appoggiarti alle funzionalità offerte dal sistema operativo (ShellExecute() su Windows e fork() + exec*() su Unix).
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ShellExecute é piu generica, serve ad "aprire" un file come se ci si cliccasse sopra due volte col mouse nella shell grafica; volendo usare le API io userei CreateProcess, o WinExec per semplicitá.
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Vabbe', non è il mio campo...
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#6 |
|
Member
Iscritto dal: May 2004
Messaggi: 139
|
Grazie a tutti mi informerò su queste modalità... eventualmente passerò di qui per eventuali dubbi
Ciao! |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: May 2004
Messaggi: 139
|
Ciao ho implementato il tutto con la funzione system()... ho notato che quando chiamo questa il mio eseguibile si apre una finestra di comando... sapete se c'è un modo per nascondere questa visualizzazione?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Con le API di Win32 citate da 71104.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#9 |
|
Member
Iscritto dal: May 2004
Messaggi: 139
|
Ciao ho creato il processo con la CreateProcess ma la finestra console si apre ugualmente... devo forse impostare qualche parametro?
|
|
|
|
|
|
#10 |
|
Member
Iscritto dal: May 2004
Messaggi: 139
|
Grazie a tutti
Posto la soluzione, se qualcuno in futuro ne avesse bisogno
Ci sono riuscito chiamando in questo modo: CreateProcess( NULL, // No module name (use command line) path, // path to execution file NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE CREATE_NO_WINDOW, // creation flags NULL, // Use parent's environment block NULL, // Use parent's starting directory &si, // Pointer to STARTUPINFO structure &pi ) // Pointer to PROCESS_INFORMATION structure Il trucco è quindi inmpostare il creation flags a CREATE_NO_WINDOW |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:52.



















