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 :

[Erreur FAQ]Comment savoir si on est connecté à internet ?


Sujet :

C++Builder

  1. #1
    Invité
    Invité(e)
    Par défaut [Erreur FAQ]Comment savoir si on est connecté à internet ?
    Bonjour,

    Je me permet de signaler une erreur dans la FAQ C++ Builder à ce jour.
    La fonction qui est sensée renvoyer l'état de la connexion à internet ne fonctionne pas (et j'en ai besoin ! ).
    Voici ce qui est dans la FAQ au 29/02/2009 :
    Citation Envoyé par FAQ C++ Builder
    Savoir si l'on est connecté à Internet :

    Pour cela nous allons utiliser la fonction "InternetGetConnectedState" de la dll "Wininet.dll". Cette façon de faire ne fonctionne pas avec tous les types de connections. A tester avec différentes configurations.

    Exemple sur une Form (Form1) poser un Bouton (Button1) et un Label (Label1) :
    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
     
    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é";
    else Label1->Caption = "Déconnecté";
    //.............
    if(hWinInet) FreeLibrary(hWinInet); //libération de la dll
    }
    Or, la fonction "pfInternetGetConnectedState(&TypeCon, 0)" renvoie un entier (TypeCon) qui n'est pas traité ici !
    Si on va lire le détail de ce paramètre sur MSDN, on peut lire ceci :
    // INTERNET_CONNECTION_CONFIGURED 0x40 Local system has a valid connection to the Internet, but it might or might not be currently connected.
    // INTERNET_CONNECTION_LAN 0x02 Local system uses a local area network to connect to the Internet.
    // INTERNET_CONNECTION_MODEM 0x01 Local system uses a modem to connect to the Internet.
    // INTERNET_CONNECTION_MODEM_BUSY 0x08 No longer used.
    // INTERNET_CONNECTION_OFFLINE 0x20 Local system is in offline mode.
    // INTERNET_CONNECTION_PROXY 0x04

    Que je sois connecté ou déconnecté, pfInternetGetConnectedState me renvoie toujours true.

    Par contre, quand je suis vraiment connecté, TypeCon vaut 0x51 (1 = connexion par modem, 0x50 = ??? )
    Quand je suis vraiment déconnecté, TypeCon vaut 0x12 (2 = réseau local, 0x10 = ??? )

    Pour tester vraiment la connexion à internet, il faut peut-être aller plus loin et appeler une fonction pfInternetOpen("Exemple",
    INTERNET_OPEN_TYPE_DIRECT,
    0, 0, 0);
    et
    pfInternetOpenUrl( hSession,
    strUrl.c_str(),
    0, 0, INTERNET_FLAG_RELOAD, 0);
    Non ?
    Si vous avez une méthode de test de la connexion à internet qui fonctionne, je suis preneur !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pour vérifier si je suis bien connecté à internet, j'essaye simplement de lire une url existante...
    Ca fonctionne bien.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/11/2013, 00h55
  2. Comment savoir si on est connecté à une page web dans IE
    Par pierrotm777 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 30/01/2011, 13h43
  3. [FAQ] Comment savoir si l'on est connecté ou non à Internet
    Par Droïde Système7 dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 10/09/2008, 15h38
  4. Réponses: 1
    Dernier message: 06/08/2008, 16h53
  5. Comment savoir si on est connecté à internet
    Par florentino dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 18/06/2007, 16h18

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