View Full Version : [C] Esecuzione file exe
Babbino79
26-03-2008, 15:08
Salve a tutti. Ho un problema sull'esecuzione di più file .exe.
Prima di tutto faccio presente che sono uno con scarsa esperienza di programmazione, quindi vi prego di non infamarmi troppo.
Io vorrei creare un file (.exe) che mi esegua altre 3 file (sempre .exe) che ho nella stessa cartella.
Ho trovato on line il fatto che devo usare la funzione
system ("path del file da eseguire");
Ma mi restituisce errore 2 errori in 3 righe.
Quello che io vorrei fare è semplicemente questo:
1)eseguire il file 1
attendere che sia finita l'esecuzione
2) eseguire il file 2
attendere che sia finita l'esecuzione
3) eseguire il file 3)
attendere che sia finita l'esecuzione
4) attendere che io gli dica di ripartire
A logica l'avevo fatto
for (i=0;i=10;i++)
{esegui file1;
attendi che finisca;
esegui file2;
attendi che finisca;
esegui file3;
attendi che finisca;
string="no";
while(stringa!="si")
{
printf("Si ricomincia?");
scanf("%s",&string);
}
}
Comprensibile? Grazie a tutti per l'aiuto.
in questo caso oltre al linguaggio dovresti specificare anche il sistema operativo perché l'esecuzione di processi in C non è portabile (cioè si fa in maniera diversa da un sitema all'altro: su Linux c'è la fork, su Windows la CreateProcess).
Babbino79
26-03-2008, 15:16
Saltello da un sistema all'altro, ma in questo caso utilizzo Windows (e Microsoft Visual 6 se interessa).
Saltello da un sistema all'altro, ma in questo caso utilizzo Windows (e Microsoft Visual 6 se interessa). allora guardati la documentazione di queste due funzioni:
http://msdn2.microsoft.com/en-us/library/ms682425.aspx
http://msdn2.microsoft.com/en-us/library/ms687032.aspx
dopo aver creato un processo con CreateProcess usa CloseHandle per chiudere l'HANDLE del thread primario restituito nella struttura PROCESS_INFORMATION, e poi WaitForSingleObject per attendere sull'HANDLE del processo (che equivale ad attendere la chiusura, brutale o meno, dello stesso); alla fine chiudi con CloseHandle anche l'HANDLE del processo.
killer queen
26-03-2008, 15:26
ma se bisogna aprire dei file non basta fare un fiel .bat con dei comandi ms-dos :stordita:
Babbino79
26-03-2008, 15:33
ma se bisogna aprire dei file non basta fare un fiel .bat con dei comandi ms-dos :stordita:
Onestamente on line avevo trovato anche quella soluzione, ma mi da errori.
Ho preso un file txt e ho scritto
start "path"
start "path"
Poi l'ho rinominato .bat
Eseguo e mi da errore.
Dove sbaglio?
Babbino79
26-03-2008, 15:38
allora guardati la documentazione di queste due funzioni:
http://msdn2.microsoft.com/en-us/library/ms682425.aspx
http://msdn2.microsoft.com/en-us/library/ms687032.aspx
Prima di tutto grazie, ma mi sto perdendo in questa lettura, nella quale non riesco a identificare il parametro fondamentale: dove metto il path del file da eseguire?
Prima di tutto grazie, ma mi sto perdendo in questa lettura, nella quale non riesco a identificare il parametro fondamentale: dove metto il path del file da eseguire? a scelta, nel primo o nel secondo parametro; meglio il primo perché il secondo non è const e quindi è una lagna (deve essere un'area di memoria modificabile, quindi la devi allocare appositamente, tipicamente nell'heap, e ricopiarci il path).
Onestamente on line avevo trovato anche quella soluzione, ma mi da errori.
Ho preso un file txt e ho scritto
start "path"
start "path"
Poi l'ho rinominato .bat
Eseguo e mi da errore.
Dove sbaglio?
va bene...
start file.exe
dagli il path corretto e funziona;)
nel file bat come prima riga metti:
@echo off
start c:\cartella\file.exe
lascia stare quelle letture sono cose da scienziati
Babbino79
26-03-2008, 16:10
va bene...
start file.exe
dagli il path corretto e funziona;)
nel file bat come prima riga metti:
@echo off
start c:\cartella\file.exe
Avevo lasciato le virgolette ecco perchè non mi funzionava... :muro: :doh:
@echo off a cosa serve?
Grazie tante a tutti (anche agli scienziati! ;) per i quali prometto che ci guarderò ancora e scriverò in fondo a questo thread la soluzione con la funzione che mi ha suggerito 71104!
Avevo lasciato le virgolette ecco perchè non mi funzionava... :muro: :doh:
@echo off a cosa serve?
significa
togli l'eco
ottimo start file.exe ti ha funzionato... un non nulla.
ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.