View Full Version : Lanciare comando DOS da programma C
TonyManero
21-03-2005, 16:37
Un quesito facile... spero!
Ho bisogno di lanciare un comando DOS direttamente da un programma in C++ sviluppato con Borland Builder...
C'è modo di farlo? ShellExecute forse???
Grazie a tutti!
Dipende dal tipo di comando, fa anche il suo sporco lavoro system("comando");
Originariamente inviato da TonyManero
C'è modo di farlo? ShellExecute forse???
anche.
TonyManero
21-03-2005, 17:04
Siete dei grandi :D
I comandi sono due identici...
NET START mysql
NET STOP mysql
Domani provo system.. funzionerà sicuramente!! ;)
System è adatto per comandi del genere...attenzione che se stai facendo un programma in grafica ti si apre una finestra DOS... In tal caso dovresti usare la ShellExecute...
DanieleC88
21-03-2005, 18:14
Originariamente inviato da cionci
System è adatto per comandi del genere...attenzione che se stai facendo un programma in grafica ti si apre una finestra DOS... In tal caso dovresti usare la ShellExecute...
Credo si possa usare anche execl()/execlp(), giusto? Magari dopo un fork().
Certo, ma la fork sotto Windows non c'è... Al posto di fork e exec si usa la CreateProcess...
DanieleC88
21-03-2005, 18:26
Originariamente inviato da cionci
Certo, ma la fork sotto Windows non c'è... Al posto di fork e exec si usa la CreateProcess...
Whoops... scusa, è abitudine a Linux. :)
Comunque resta il consiglio di execl().
Ma la exec sovrascrive il processo corrente con il nuovo processo...quindi non è adatta...
DanieleC88
21-03-2005, 18:39
Giusta osservazione :)
Infatti, me lo conferma anche man.
Scusami, ma ho ancora da imparare... :(
TonyManero
22-03-2005, 07:14
Grazie a tutti!!
Il programma fortunatamente non è di grafica. E' un semplice abbplicativo per il backup automatico di alcuni dati! Stamattina ci lavoro a vediamo cosa ne viene fuori!!!
Ciao! :)
TonyManero
30-03-2005, 07:09
Mi ero scordato di voi.... :D
Con "system" funziona. Ora proverei anche con CreateProcess.
Unica cosa: dovendo io lanciare questo comando e poi di consequenza compiere altre azioni, come faccio a sapere quando ha finito di compiere il comando contenuto in "system"??
Detto in parole povere con system("NET STOP mysql") stoppo un DB ed ho bisogno di sapere che questa operazione è avvenuta per procedere con le altre operzioni....
Chiedo troppo??? :D :D
Grazie a tutti! :)
Prova a connetterti sulla porta di MySQL...quando la connessione fallisce il server è fermo...anche se credo che tu possa ancora lavorare con il comando NET...
Come faccio a non fare in modo che in questa istruzione il compilatore non prenda \a come carattere di escape?
#include<stdlib.h>
void main()
{
system("copy c:\a.txt nuova_cartella");
}
Fenomeno85
02-04-2005, 19:06
prova così
#include<stdlib.h>
void main()
{
char command [] = "copy c:\\a.txt c:\\nuova_cartella";
system(command);
}
funziona provato.
~§~ Sempre E Solo Lei ~§~
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.