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

Web & réseau Delphi Discussion :

Etat de la connexion réseau d'un PC


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 464
    Par défaut Etat de la connexion réseau d'un PC
    Bonjour, j'aurais besoin de connaître l'état de la connexion réseau du PC qui supporte mon application.
    Je suis sous DXE2 et W7 ou 8.x, et l'idéal serait de récupérer les infos correspondant à l'état de l'icône réseau qui apparaît dans la barre des tâches à gauche.
    J'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetSystemMetrics(SM_NETWORK) and $0001>0
    l'information est juste au démarrage, mais elle n'est pas remise à jour.
    Au niveau de l'icône on a l'information de raccordement à un réseau (celle dont j'ai absolument besoin) et celle de la connexion à Internet (qui pourrait servir un jour).
    Merci

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 496
    Par défaut
    salut

    cherche du coté de InternetGetConnectedState dans la dll Wininet

  3. #3
    JYH
    JYH est déconnecté
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Par défaut
    Bonjour,

    j'ai la même problématique as tu trouvé une solution ?

    perso pour le moment je n'ai trouvé que ça :

    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
     
    function ExistOrdiReseau(Ordi:string) :boolean;
    var
      PRessource: PNetResource;
      HandleEnum:THandle;
    begin
      if not(Recherche) then
      begin
        Recherche:=True;
        Ordi:='\\'+Ordi;
        result:=true;
        PRessource := AllocMem(16384);// 16Ko
        PRessource.lpRemoteName:=LPTSTR(Ordi);
        if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, PRessource, HandleEnum) <> NO_ERROR then
           result:=false;
        WNetCloseEnum(HandleEnum);
        FreeMem(pRessource);
        Recherche:=False;
      end;
    end;
     
    // pour évaluer si mon serveur est en ligne
    if ExistOrdiReseau('Serveur') then
    Mon application est destinée à des portables de gens qui vont souvent en réunion, donc réseau et/ou wifi, et doit tester régulièrement un base SQL.
    Je serais preneur d'une solution qui n'attende pas un time-out.
    Merci de vos réponses.

    JYH

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 464
    Par défaut
    Bonjour,
    Non je n'ai encore rien trouvé de vraiment efficace.
    Je ne comprend pas que personne ne sache comment récupérer les infos qui animent cette icône et qui sont vraiment pertinentes.

    Merci

    BB

  5. #5
    JYH
    JYH est déconnecté
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 24
    Par défaut
    En ce moment je suis sur la piste de détecter l'IP de la machine avant de tester la ressource serveur.
    j'utilise un JvComputerInfoEx un compo de la jedi-vcl
    comme mon réseau est en 10.100.xx.xxx

    if Pos('10.100.',JvComputerInfoEx1.Identification.IPAddress)=1 then
    begin
    ... ici mon code pour voir si le serveur est OK

    L'adresse si pas de réseau ni de wifi donne 127.0.0.1 chez moi

    Déjà ça confirme avant qu'on est bien sur le bon réseau. J'ai encore des problèmes mais je creuse.

    un détail j'ai mis {$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP} en directive de compilation sensé forcer la machine à charger entièrement le programme en mémoire.

    j'ai essayé les composants Indy mais ça me fige tout quand il n'y a pas de connexion ... mes clients n'ont aucune sens de l'humour ça ne leur conviendrait pas.

    JYH

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 464
    Par défaut
    Je n'avais pas pensé à JvComputerInfoEx. Effectivement s'il n'y a pas de réseau il semble que l'on récupère une IP en 127.0.0.1.

    Je n'ai pas pu le vérifier complètement, mais c'est quasi certain.
    Donc si on a autre chose que 127.0.0.1 le réseau est actif et on peut vérifier si on est sur le bon réseau.
    Par contre je ne vois pas ce qu'apporte le fait de charger tout le programme en mémoire ?
    Perso, je préfère les composants ICS à Indy, il me semble qu'ils sont plus simples à utiliser.

Discussions similaires

  1. Perte de connexion réseau
    Par Gege70 dans le forum Administration
    Réponses: 3
    Dernier message: 06/05/2005, 11h09
  2. Problèmes de connexion réseau à MySQL
    Par digital prophecy dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/05/2005, 22h35
  3. Services Oracle ne démarre pas sans connexion réseau??
    Par dreamanoir dans le forum Oracle
    Réponses: 6
    Dernier message: 22/02/2005, 01h44
  4. Connaître l'état d'une connexion réseau
    Par SteelBox dans le forum Windows
    Réponses: 8
    Dernier message: 29/07/2004, 13h30
  5. API MySQL - Connexion réseau
    Par klael dans le forum Bases de données
    Réponses: 3
    Dernier message: 18/03/2004, 10h25

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