|
|
|
![]() |
|
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: 01:11.