Trace route avec qt

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 633 fois - Téléchargée 19 fois

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

Ajouter un commentaire Commentaires
GrayHat Nation
17 juin 2015 à 11:56
salut ton programme ne fonctionne pas normal quand on ne termine pas le travail. quelle idee de proposé un truc pareil c'est une honte se site n est tt simplement pas fiable et les programmeurs aussi apparemment... bien dommage que les admin ne vérifient pas les sources... je ne te félicite pas mais bonne continuation en espèrent que tu propose mieux la prochaine fois
Un espace se rajoute automatiquement dans le lien de téléchargement, pensez a l'enlever ^^ :)

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)