IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Tester si une connection internet est valide


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut Tester si une connection internet est valide
    Salut
    Suite a cette discution
    j'ai teste les codes proposes dans ces trois liens
    Celui de CGI fonctionne tres bien, le deuxieme code du site fait un teste permanent de la connection a l'aide d'un Timer, le troisieme code ne fonctionne pas mais je n'ai pas cherche a le Debuger, par contre j'ai utilise la facon de tester le Type de connection, voici le code, sur la Form un Button un TLabel
    le .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     typedef BOOL (WINAPI *PF_INETGETCONNECTEDSTATE)(LPDWORD, DWORD);
     HANDLE hWinInet;
     PF_INETGETCONNECTEDSTATE pfInternetGetConnectedState;
    //.............
    hWinInet = LoadLibrary("WININET.DLL");  //Chargement de la dll
        if(hWinInet == NULL)
            {
             Label1->Caption = "Impossible de charger Wininet.dll";
             return;
            }
    pfInternetGetConnectedState = (PF_INETGETCONNECTEDSTATE) GetProcAddress(
                              hWinInet, "InternetGetConnectedState");
                    // affectation du pointeur sur la fonction
        if(pfInternetGetConnectedState == NULL)
            {
             Label1->Caption = "Erreur appel fonction InternetGetConnectedState";
             if(hWinInet) FreeLibrary(hWinInet);
             return;
            }
    //.............
    DWORD TypeCon ;
    if (pfInternetGetConnectedState(&TypeCon, 0)) //appel de la fonction
    {
         Label1->Caption = "Connecté";
        if (TypeCon & INTERNET_CONNECTION_LAN)
          Label1->Caption = "LAN - Connecté";
        if (TypeCon & INTERNET_CONNECTION_MODEM)
          Label1->Caption = "MODEM actif - Connecté";
        if (TypeCon & INTERNET_CONNECTION_PROXY)
          Label1->Caption = "PROXY-SERVER - Connecté";
    }
    else Label1->Caption = "Déconnecté";
    // .............
    // Suite du programme a executer
    // .............
    if(hWinInet) FreeLibrary(hWinInet); //libération de la dll
    }
    //---------------------------------------------------------------------------

  2. #2
    Membre confirmé Avatar de winow
    Inscrit en
    Novembre 2004
    Messages
    668
    Détails du profil
    Informations personnelles :
    Âge : 59

    Informations forums :
    Inscription : Novembre 2004
    Messages : 668
    Points : 628
    Points
    628
    Par défaut
    .
    Merci blondelle, une page de plus que je vais imprimer car trés interessant

    A+

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Merci winow
    L'API wininet permet bien plus de chose que ce simple code un lien qui donne une idee
    avoir ceci je pense que l'on doit pouvoir tester si une connection est plantee
    InternetCheckConnectionW (WININET.@)
    ou
    InternetCheckConnectionA (WININET.@)
    Pings a requested host to check internet connection
    RETURNS
    TRUE on success and FALSE on failure. If a failure then
    ERROR_NOT_CONNECTED is placed into GetLastError
    la c'est un peu au dessus de mon niveau peut etre qu'un lecteur de passage nous mettra sur la voie

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Points : 77
    Points
    77
    Par défaut
    Salut
    En fait c'est un code dans cette esprit la que je cherche blondelle
    Si on pouvais creusé je pense que çà serais un plus.
    Ensuite par contre un passage en FAQ serais aussi une très bonne idée pour qui veux regardé si une connexion est ouverte.

Discussions similaires

  1. [CTLIB] Tester si une connection est UP
    Par tomasha dans le forum Sybase
    Réponses: 4
    Dernier message: 07/03/2007, 08h01
  2. [mysqli] tester si une connection est fermée
    Par raoulchatigre dans le forum Administration
    Réponses: 4
    Dernier message: 06/10/2006, 15h00
  3. Réponses: 3
    Dernier message: 07/10/2005, 09h34
  4. Tester qu'une variable varchar est un nombre
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/06/2005, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo