Trace route avec qt

Contenu du snippet

Encore une fois l'ennuie à eu raison de moi. Voici un mini programme permettant de faire le fameux TraceRT de Windows!

Disponible en téléchargement ici ==> https://rapidshare.com/files/2228038521/QT_TraceRT.rar car la taille est supérieur au maximum uploadable ici.

A votre disposition pour toutes question.

Cdt

LoVerMaKi

Source / Exemple :


_____________________
Main.cpp
_____________________
#include <QtGui/QApplication>
#include "qt_trace.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Qt_Trace w;
    w.show();
    
    return a.exec();
}

_________________________________
QT_Trace.h
_________________________________

#ifndef QT_TRACE_H
#define QT_TRACE_H

#include <QMainWindow>
#include <QProcess>
#include <QMessageBox>

namespace Ui {
class Qt_Trace;
}

class Qt_Trace : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit Qt_Trace(QWidget *parent = 0);
    ~Qt_Trace();
    
private slots:
    void on_actionNew_triggered();

    void Reception();

    void on_pushButton_clicked();

private:
    Ui::Qt_Trace *ui;
    QProcess P;
    QString Tmp;

};

#endif // QT_TRACE_H

_______________________
QT_Trace.cpp
_______________________
#include "qt_trace.h"
#include "ui_qt_trace.h"

Qt_Trace::Qt_Trace(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Qt_Trace)
{
    ui->setupUi(this);
    connect(&P,SIGNAL(readyRead()),this,SLOT(Reception()));
}

Qt_Trace::~Qt_Trace()
{
    delete ui;
}

void Qt_Trace::on_actionNew_triggered()
{
    ui->AdresseEdit->setText("");
    ui->TraceEdit->setText("");
}

void Qt_Trace::Reception()
{

    Tmp=QString::fromLatin1(P.readAll());
    Tmp.replace("\202","e");
    Tmp.replace("\377"," ");
    Tmp.replace("ms","ms\t");
    Tmp.replace("*","*ms\t");
    ui->TraceEdit->setFontWeight(QFont::Bold);
    ui->TraceEdit->insertPlainText(Tmp);
}

void Qt_Trace::on_pushButton_clicked()
{

    // Si trace successif netoyage de la fenetre de resultat
    if(ui->TraceEdit->toPlainText()!="")
    ui->TraceEdit->setText("");

   // Vérification adresse tapée
   if ( ui->AdresseEdit->text()== "")
   {
     QString msg=" Pas d'adresse tapée ";
     QMessageBox::warning(this,"Echec d'adresse' ",msg);
   }
   else
   {
      // préparation du ping argument + commande a appeler
      QStringList arguments;
      QString program = "tracert";
      arguments << "-w" << QString("%1").arg(20) << ui->AdresseEdit->text();
      P.start(program,arguments);
    }
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_LoVerMaKi)