Posso richiamarli in un file .cpp in qualche modo?
Se si poi compilerei quest'ultimo che li richiamerebbe tutti...
Grazie
Posso richiamarli in un file .cpp in qualche modo?
Se si poi compilerei quest'ultimo che li richiamerebbe tutti...
Grazie
Non ho molto esperienza di C++ sinceramente... ma con il C nelle librerie standard (stdio.h) hai la funzione:
che esegue da terminale ciò che viene passato in "comando"!codice:system("comando");
Salute a voi, da Laikius!
--> Faber est suae quisque fortunae <--
Originariamente inviato da Laikius91
Non ho molto esperienza di C++ sinceramente... ma con il C nelle librerie standard (stdio.h) hai la funzione:
che esegue da terminale ciò che viene passato in "comando"!codice:system("comando");
Se fosse così anche in c++ basterebbe ad es. mettere nel codice .cpp che richiama i tre .exe :
system("1.exe");
system("2.exe");
system("3.exe");
???
Grazie!
Esatto, ma la system è deprecata per svariati motivi.
Ho sentito che puoi usare anche la API ShellExecute, ma non usando spesso il C++ non so quale sia la soluzione migliore.
Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
Occhio per occhio uguale... occhio al quadrato
Non si fermasse.. al 20° exe...Originariamente inviato da ShaleN
Esatto, ma la system è deprecata per svariati motivi.
Ho sentito che puoi usare anche la API ShellExecute, ma non usando spesso il C++ non so quale sia la soluzione migliore.
Mi spiego meglio... sperando che qualcuno mi sappia dare la spiegazione della non esecuzione dei restanti exe in cascata:
Tutto bene fino al 20° exe poi il resto non lo considera...codice:#include <windows.h> #include <stdlib.h> using namespace std; int main() { ShellExecute(NULL,NULL,"1.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"2.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"3.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"4.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"5.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"6.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"7.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"8.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"9.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"10.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"11.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"12.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"13.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"14.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"15.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"16.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"17.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"18.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"19.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"20.exe",NULL,"cartella",SW_MAXIMIZE); //arriva ad eseguire fino a qui... ShellExecute(NULL,NULL,"SCREMA1.exe",NULL,"cartella",SW_MAXIMIZE);//il resto non lo esegue... ShellExecute(NULL,NULL,"SCREMA2.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"SCREMA3.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"SCREMA4.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"SCREMA5.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"UNISCITUTTIGLISCREMATI.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"TROVAONOAMBATARILEVATA.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"SOLOPRESENZE0.exe",NULL,"cartella",SW_MAXIMIZE); ShellExecute(NULL,NULL,"SCREMATURAFINALISSIMA.exe",NULL,"cartella",SW_MAXIMIZE); }
debugga
controlla il return value delle singole funzioni (anche stampandolo ogni volta a video)
return values
Mi scriveresti il codice con returnvalues così che ti possa postare il debug?Originariamente inviato da Celebron
debugga
controlla il return value delle singole funzioni (anche stampandolo ogni volta a video)
return values
Grazie
ps: Gli exe che lo shellexecute non mi starta se cliccati singolarmente funzionano benissimo... quindi sembra proprio che shellexecute non possa eseguire più di un tot di exe... Potrebbe essere? Ci potrebbe essere un parametro che condiziona il tempo di esecuzione di shellexecute?
non ho ben capito cosa chiedi
comunque nella pratica ti basta mettere un variabile int che riceve il valore di ogni shellexecute e poi te lo stampi a video (o alternativamente, usando il debuggar, controlli passo passo quel valore)
nota: If the function succeeds, it returns a value greater than 32
comunque ti sto parlando da profano, nel senso che non ho mai usato questa funzione
Se clicco singolarmente i 6 file .exe tutto ok.. ognuno funziona a meraviglia mentre se eseguocodice:#include <windows.h> #include <stdlib.h> using namespace std; int main() { ShellExecute(NULL,NULL,"STARTA1.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA2.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA3.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA4.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA5.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA6.exe",NULL,"fscommand",SW_MAXIMIZE); }
il file .exe che li richiama in sequenza con shellExecute STARTA5.exe e STARTA6.exe non vengono minimamente considerati...
Originariamente inviato da freetom
codice:#include <windows.h> #include <stdlib.h> using namespace std; int main() { ShellExecute(NULL,NULL,"STARTA1.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA2.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA3.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA4.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA5.exe",NULL,"fscommand",SW_MAXIMIZE); ShellExecute(NULL,NULL,"STARTA6.exe",NULL,"fscommand",SW_MAXIMIZE); }
Se clicco singolarmente i 6 file .exe tutto ok.. ognuno funziona a meraviglia mentre se eseguo
il file .exe che li richiama in sequenza con shellExecute STARTA5.exe e STARTA6.exe non vengono minimamente considerati...
Ho risolto con la funzione Sleep(10000) tra un shellexecute e l'altro