|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2003
Città: Roma
Messaggi: 204
|
[c][c++] eseguire il ping
Salve a tutti. non conosco molto bene il c++,
sto comunque realizzando una applicazione a finestra di dialogo nella quale ci dovrebbe essere un pulsante che premuto deve scrivere su un file il risultato del comando ping. Sotto dos farei "ping 127.0.0.1 > ping.txt" Io avevo pensato di fare WinExec("ping 127.0.0.1 > ping.txt", SW_HIDE); ma non funziona. chi mi può aiutare? Grazie Fbt ps. ci sarebbe una funzione che eseguita restituisce ad esempio 0 se il ping non dà esito? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per eseguirlo così:
ShellExecute(this->m_hWnd, "open","ping", "www.pippo.com", "C:\\", SW_HIDE); Il problema è che non puoi redirigere l'output sul file, visto che non viene chiamato l'interprete dei comandi... Al max potresti chiamare una file batch che contiene il comando con la redirezione... |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2003
Città: Roma
Messaggi: 204
|
l'idea di fare un file batch è buona, non ci avevo pensato. Il fatto è che il file batch deve scrivere un file che poi userò nel programma.
Per scrivere il file impiega circa 4-5 secodi, quindi il programma principale si dovrebbe fermare un po' prima di cercare di accedere al file. Come posso mettere "in pausa" il programma principale? |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Codice:
SHELLEXECUTEINFO shExecInfo;
shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
shExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shExecInfo.hwnd = NULL;
shExecInfo.lpVerb = NULL;
shExecInfo.lpFile = "tuobatch.bat";
shExecInfo.lpParameters = "www.pippo.com output.txt";
shExecInfo.lpDirectory = NULL;
shExecInfo.nShow = SW_HIDE;
shExecInfo.hInstApp = NULL;
if(!ShellExecuteEx(&shExecInfo))
{
AfxMessageBox("Errore nell'esecuzione !!!");
return;
}
WaitForSingleObject(shExecInfo.hProcess, INFINITE);
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:50.



















