yvessimon
Messages postés637Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 9 janvier 2017
-
5 juin 2006 à 09:05
p007tod76
Messages postés1Date d'inscriptionjeudi 8 juillet 2004StatutMembreDernière intervention10 janvier 2011
-
10 janv. 2011 à 12:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
p007tod76
Messages postés1Date d'inscriptionjeudi 8 juillet 2004StatutMembreDernière intervention10 janvier 2011 10 janv. 2011 à 12:08
Bonjour
Je tombe par hasard (et bien tard sans doute sur ce post) mais à tout hasard ...
Il faut changer dans FormCreate
AdressesIP[2] := '212.27.32.5'; // Seconde adresse: IP du DNS de free.fr
par
AdressesIP[2] := '212.27.54.252'; // Seconde adresse: IP du DNS de free.fr
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 20092 23 mars 2010 à 19:00
Bonsoir à toutes et à tous,
Je sais que c'est un peu tard par rapport au topic mais cela ne fonctionne pas logiquement sur Vista.
Le code se compile bien avec D6
Lors du test avec un modem routeur usb de marque Philips série 6000, le logiciel estime que la connexion "ordinateur modem" est Ok et par contre la connexion "modem internet" est corrompue, ce qui n'est pas correct en réalité.
Au cas ou quelqu'un aurait aussi détecté cette anomalie.
@+,
Cincap
cs_ekinoxjp
Messages postés43Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention18 septembre 2011 4 août 2006 à 04:52
Merci pour la faute d'ortho, vais corriger ça ^^
Si non effectivement c'est bizzare que ça te dit ok alors que ça ne l'est pas. C'est étonnant, je n'arrive pas à produire cette erreure chez moi. Je suis derrière un modem routeur Netgear et ça marche aussi bien que sur le Zyxel de ma grand mère. Est-ce que tu as compilé le prog ou tu l'as piqué déjà tout prêt? Est-ce que tu reçois une réponse quand tu fait un ping sur 212.27.32.5 avec le cable d'ébranché ? Si ça se trouve ton modem répond à la place pour dire que c'est pas bon (étonnant mais j'aurais tout vu).
cs_mcapp
Messages postés71Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention15 décembre 2011 13 juin 2006 à 18:49
Bravo pour ce programme !
Une remarque : si je débranche mon modem-routeur SpeedTouch d'Aol, je n'ai plus la connexion internet. Pourtant ton programme annonce : internet OK.
Il décèle sans doute mon réseau local qui continue à fonctionner, mais ne devrait pas annoncer : Internet OK.
As-tu une réponse pour ce point ?
Autre remarque qui ne te vexera pas, je l'espère :
"Cliquer ici pour un diagnostique de la connection internet" s'écrit en réalité : "Cliquer ici pour un diagnostic de la connexion internet" (c'est seulement pour t'aider : faire encore plus sérieux et fini !)
Encore Félicitations !
Mcapp
cs_ekinoxjp
Messages postés43Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention18 septembre 2011 12 juin 2006 à 13:47
Si je te le file compilé, tu ne pourra pas personnaliser les messages d'erreures.
J'ai donc fait une modif pour qu'on puisse modifier les messages d'erreures sans avoir besoin de compiler.
Et voici un lien pour télécharger le programme déjà compilé ;-)
cs_sergejb
Messages postés20Date d'inscriptionmercredi 16 octobre 2002StatutMembreDernière intervention12 juin 2006 12 juin 2006 à 09:47
Pour Marie-Candide
Ben oui il vaut mieux. Les exe ne figurent plus dans les zip (et c'est bien) pour cause de place, et autres inconvénients. Mais si tu veux un exe demande ça à EquinoxJp (avec un tit mail) qui se fera un plaisir sans doute.
Bises (et pas de craintes, nous avons tous nos mèches !)
ah oui, ok, faut avoir delphi...
et si on a pas delphi, on ne peut pas avoir l'exe, donc...
(j'ai arrêté de faire des mèches blondes, mais je sens que ça blondit, ça blondit.... tout doucement...)
cs_sergejb
Messages postés20Date d'inscriptionmercredi 16 octobre 2002StatutMembreDernière intervention12 juin 2006 12 juin 2006 à 09:14
Pour Marie-Candide
Et ben tu compiles le projet avec D6 ou équivalent selon affinités.
Et tu ouvres l'exe obtenu.
Clin d'oeil !
heu... je ne suis pas blonde, mais... une fois que j'ai téléchargé les 4 fichiers, je fais QUOI ?
cs_ekinoxjp
Messages postés43Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention18 septembre 2011 6 juin 2006 à 20:50
Voilà le code source à été mis à jour :)
Serge, quel hasard,
ma Mamie est blonde.
Mort de rire ^^
cs_sergejb
Messages postés20Date d'inscriptionmercredi 16 octobre 2002StatutMembreDernière intervention12 juin 2006 6 juin 2006 à 10:36
Tout fonctionne bien, avec les derniers commentaires intégrés. J'ai un réseau local sur un modem routeur olitec SX200. Le test est correct, la détection des pannes aussi, le tout compilé en D6.
Très bonne source.Il n'y a pas que les grands parents qui peuvent être intêressés, je connais des blondes...! Bravo
cs_ekinoxjp
Messages postés43Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention18 septembre 2011 6 juin 2006 à 10:03
wow Cirec! Tu cartones! ^^
Je ferais ces modifs dès que je rentre ce soir (Je suis au boulot en ce moment^^)
En tout cas joli travail :)
Tu m'as appris des astuces bien utiles, je te remerci beaucoup! ;-)
En tout cas ton code me plait je le trouve simpa, tu as fait l'éffort de commenter ton code ça c'est très bien.
Si tu nommais tes composants ta source serait encore plus facile à lire (pour toi comme pour nous)
Et pour finir la présentation a été soigné
pour toutes ces raisons et pour t'encourager à continuer
je met un 8/10
pour commencer sais-tu que tu peux initialiser les variables globales ?
...
var
Form1: TForm1;
Noms: array[1..2] of string = ('le modem', 'Internet');
AdressesIP: array[1..2] of string;
AdresseActuelle: integer = 1;
Implementation
...
// du coup dans OnCreate de la form :
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
{plus besoin d'initialiser AdresseActuelle}
//AdresseActuelle := 1; // 1.modem 2.internet
// Pour éviter d'écrire les choses deux fois, j'ai utilisé des tableaux
// On ping en premier le modem et ensuite sur Internet
{et plus besoin d'initialiser Noms}
//Noms[1] := 'le modem';
//Noms[2] := 'Internet';
AdressesIP[1] := IPduModem(IPconfig)+'1'; // Première adresse: ip du modem
AdressesIP[2] := '212.27.32.5'; // Seconde adresse: IP du DNS de free.fr
// Conseil: Mettre si possible une addresse ip au lieu d'un nom de domaine www
// ceci pour éviter des messages d'erreures lorsque celui-ci ne répond pas.
end;
{ensuite pour préserver l'affichage des couleurs jusqu'au bout
Il faut à nouveau déplacer la procédure ChangeCouleur(Etat:Boolean); pour la placer avant Timer1Timer
Et modifier le code comme suit :
}
// Affecte la couleur aux fils (vert ou rouge)
procedure ChangeCouleur(Etat:Boolean);
var
couleurs: Tcolor;
begin
if Etat then couleurs := clLime // vert
else couleurs := clRed; // rouge
// Affecte la couleur au fil actuel
//si modem est Ok et Internet non la ligne reste verte pour le modem
// avant ce n'était pas le cas
if AdresseActuelle = 1 then Form1.Label2.Color := couleurs
Else
Form1.Label3.Color := couleurs;
end;
// Effectue un ping
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
ICMP.ReceiveTimeout := 3000;
try
ICMP.Host := AdressesIP[AdresseActuelle];
ICMP.Ping;
Application.ProcessMessages;
Except
on E: Exception do
Begin
Timer2.Enabled := False;
ChangeCouleur(False); // Affiche en rouge la non connection
pour connaitre le texte du message d'erreur activer la ligne suivante
// ShowMessage(E.Message);
MessageErreure;
End;
end;
end;
Ensuite peut tu expliquer le code suivant ?:
Var
sTime: string;
TempsDeReponse: integer;
begin
sTime := '';
//TempsDeReponse en 'ms'
TempsDeReponse := strtoint(Format('%s%d',[sTime,AReplyStatus.MsRoundTripTime]));
est ce bien utile de faire un transtypage ici ?
TempsDeReponse := AReplyStatus.MsRoundTripTime;
Devrait donner le même resultat
Voilà c'est tout
@+
Cirec
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 6 juin 2006 à 01:10
Bon alors j'ai testé la nouvelle mouture
et maintenant le modem est détecté même si la connection à Internet n'est pas établie
Donc bravo tu as réussi
Du coup, francky, chez toi ça devrait également fonctionner
Mais voilà une petite ombre au tableau ;-)
le prog coince et ne se termine plus
J'ai donc apporté une petite modification au code que voici :
{La procédure MessageErreur n'avait pas de problème mais faut la déplacer avant la procédure TimerTimer pour pouvoir l'utiliser dans cette dernièrre}
// Messages d'erreurs
Procedure MessageErreure();
begin // Faire appel à unit1 n'est pas utile
Form1.Label1.Caption := 'Probleme avec '+{Unit1.}Noms[{Unit1.}AdresseActuelle]+' (cliquez ici pour tester à nouveau)';
// pas besoin de vider le Mémo SetTextBuf le fait
//Form1.Memo1.Clear;
// Si erreure à la tentative du modem
if AdresseActuelle < 2 then
Form1.Memo1.SetTextBuf('Solution:'+#13+#10+'Vérifier que le modem est bien allumé et que le cable est bien branché.'+#13+#10+'Si non redémarrer l''ordinateur.')
else // Si erreure à la tentative sur Internet
Form1.Memo1.SetTextBuf('Solution:'+#13+#10+'S''il y a une lumière orange sur le modem alors redémarrer l''ordinateur et le modem.'+#13+#10+'S''il n''y a pas de lumière orange, alors attendre 30 secondes qu''elle s''allume.'+#13+#10+'Si toujours pas de lumière orange alors vérifier que le modem est correctement branché à la prise téléphonique.');
end;
{Procédure Timer1Timer après MessageError}
// Effectue un ping
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
ICMP.ReceiveTimeout := 3000;
try
ICMP.Host := AdressesIP[AdresseActuelle];
ICMP.Ping;
Application.ProcessMessages;
{Ici on change pour Except ce qui permet en cas d'erreur d'eviter que le prog frize on Disable les deux timers puis on affiche MessageErreur}
Except
Timer1.Enabled := False;
Timer2.Enabled := False;
MessageErreure;
end;
end;
Moi aussi j'ai un BeWan sur port USB et tout fonctionne
Donc c'est pas la bonne piste
@+
Cirec
cs_ekinoxjp
Messages postés43Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention18 septembre 2011 5 juin 2006 à 23:31
Ah j'ai compris votre problème!
Enfin je le dévine ^^
C'est Francky qui m'a mis la puce à l'oreil. :)
Vous avez un Modem BeWan "en USB" (et non en Ethernet) et donc le modem ne répond pas aux pings.
Ce n'est pas un problème, car la fonction "ipconfig" (du programme) permet de deviner s'il le modem USB est allumé ou pas (si l'ipconfig retourne 127.0.0.1 alors le modem USB est éteint)
J'ai modifié le programme pour qu'il soit compatible avec les modems USB. J'espère que ça va marcher :)
cs_ekinoxjp
Messages postés43Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention18 septembre 2011 5 juin 2006 à 22:28
hum,
Question toute simple, si elle ne l'est pas, dites-le ;-)
Quand vous faites un ping du modem dans la commande DOS est-ce que ça répond bien?
Si vous obtenez une réponse du ping, pourriez-vous me donner l'adresse IP du modem?
Je vais faire ce que je peux pour que ça fonctionne aussi chez vous :)
Oui il me semble effectivement qu'on aient le même FAI
mais chez moi je dois établir la connection Internet pour pouvoir utiliser le programme, mais ça je pense que tu as déjà testé.
ps : Source compilé sous D2005 avec Indy10
@+
Cirec
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 5 juin 2006 à 15:31
Re,
Merci pour l'explication du timer ;)
Par contre j'ai un Modem BeWan aussi et le meme FAI que Cirec (je crois ^^) donc je comprends pas pk ca ne fonctionne pas
@+
cs_ekinoxjp
Messages postés43Date d'inscriptionsamedi 30 avril 2005StatutMembreDernière intervention18 septembre 2011 5 juin 2006 à 12:58
Salut tout le monde!
Merci pour vos feedback, je vais essayer de répondre au mieux :)
Si la détection du modem ne fonctionne pas, je pense que soit le modem ne répond pas aux ping, soit l'adresse IP du modem est faussé par une autre carte réseau (est-ce que vous avez plusieurs cartes réseaux?). Dans ce cas, vous pouvez spécifier vous même l'adresse du modem dans la procedure FormCreate.
Pour Francky23012301 :)
J'ai plusieurs raisons pour lesquels j'ai utilisé un Timer, la première c'est pour garder la main sur le programme (si non tout Freeze), la seconde c'est pour qu'il puisse y avoir une petite animation en attendant la réponse du ping. A la limite, j'aurai pu utiliser un Thread :)
Pour cirec,
Si je test la connection Internet en fesant un ping sur un DNS de free, c'est parce que Papi et Mamie ont la chance d'avoir une femme de ménage qui vient une fois par semaine et qui arrache à chaque fois les fils du modem au téléphonne. Si je m'arrête seul au test du modem et n'effectue pas le test Internet, le programme ne sera pas en mesure de les aider à résoudre leur problème.
Je sais que si Papi et Mami m'appellent, ce ne sera pas pour des problèmes aussi basiques qu'un simple câble débranché (m'est déjà arrivé plusieurs fois). Voilà ;-)
Salut,
Alors chez moi tout fonctionne très bien.
Modem BeWan
la seule chose que je trouve bizarre c'est qu'il ait besoin d'une connexion établie à Internet pour me dire que tout fonctionne ???? ;-)
L'outil de diagnostic fournis par mon F.A.I. me détecte mon modem et sans être connecté à Internet (sauf si un câble est débranché bien sûr)
Pour le code je regarderais plus tard
@+
Cirec
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 5 juin 2006 à 11:54
Salut,
Idem que Matt et pourtant la je suis entrain de t'écrire. Petit conseil : l'utilisation du Timer est inutile une simple boucle aurait fait l'affaire.
A+
Matt 261
Messages postés1173Date d'inscriptionmercredi 2 novembre 2005StatutMembreDernière intervention10 septembre 20113 5 juin 2006 à 10:38
Salut tout le monde,
moi j'ai un problème, je suis connecté à Internet via un modem donc jusque là OK mais quand je test si je suis connecté avec ton soft il me dit :
"Vérifier que le modem est bien allumé et que le cable est bien branché.
Si non redémarrer l'ordinateur." pourtant tout est bon (la preuve je suis entrain de mettre un commentaire sur ta source ;-) ).
cs_fjohnny
Messages postés46Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention18 septembre 2006 5 juin 2006 à 09:45
YvesSimon:
D'aprés ce que j'ai vu dans le code et l'explication qu'a donné ekinoxjp, si tu as une passerelle ou un routeur sur l'adresse x.y.z.1 (où x, y,z correspondent aux 3 premiers octects de ton adresse IP) alors la détection du modem sera OK. Par contre suivant la façon dont ton réseau Intranet est structuré (si tu as une connection directe à l'internet via ton réseau Intranet) alors la connection internet fonctionnera aussi.
Salutations.
yvessimon
Messages postés637Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 9 janvier 2017 5 juin 2006 à 09:05
10 janv. 2011 à 12:08
Je tombe par hasard (et bien tard sans doute sur ce post) mais à tout hasard ...
Il faut changer dans FormCreate
AdressesIP[2] := '212.27.32.5'; // Seconde adresse: IP du DNS de free.fr
par
AdressesIP[2] := '212.27.54.252'; // Seconde adresse: IP du DNS de free.fr
23 mars 2010 à 19:00
Je sais que c'est un peu tard par rapport au topic mais cela ne fonctionne pas logiquement sur Vista.
Le code se compile bien avec D6
Lors du test avec un modem routeur usb de marque Philips série 6000, le logiciel estime que la connexion "ordinateur modem" est Ok et par contre la connexion "modem internet" est corrompue, ce qui n'est pas correct en réalité.
Au cas ou quelqu'un aurait aussi détecté cette anomalie.
@+,
Cincap
4 août 2006 à 04:52
Si non effectivement c'est bizzare que ça te dit ok alors que ça ne l'est pas. C'est étonnant, je n'arrive pas à produire cette erreure chez moi. Je suis derrière un modem routeur Netgear et ça marche aussi bien que sur le Zyxel de ma grand mère. Est-ce que tu as compilé le prog ou tu l'as piqué déjà tout prêt? Est-ce que tu reçois une réponse quand tu fait un ping sur 212.27.32.5 avec le cable d'ébranché ? Si ça se trouve ton modem répond à la place pour dire que c'est pas bon (étonnant mais j'aurais tout vu).
13 juin 2006 à 18:49
Une remarque : si je débranche mon modem-routeur SpeedTouch d'Aol, je n'ai plus la connexion internet. Pourtant ton programme annonce : internet OK.
Il décèle sans doute mon réseau local qui continue à fonctionner, mais ne devrait pas annoncer : Internet OK.
As-tu une réponse pour ce point ?
Autre remarque qui ne te vexera pas, je l'espère :
"Cliquer ici pour un diagnostique de la connection internet" s'écrit en réalité : "Cliquer ici pour un diagnostic de la connexion internet" (c'est seulement pour t'aider : faire encore plus sérieux et fini !)
Encore Félicitations !
Mcapp
12 juin 2006 à 13:47
J'ai donc fait une modif pour qu'on puisse modifier les messages d'erreures sans avoir besoin de compiler.
Et voici un lien pour télécharger le programme déjà compilé ;-)
http://ekkinoxx.free.fr/utilities/DiagnostiqueInternet.zip
12 juin 2006 à 09:47
Ben oui il vaut mieux. Les exe ne figurent plus dans les zip (et c'est bien) pour cause de place, et autres inconvénients. Mais si tu veux un exe demande ça à EquinoxJp (avec un tit mail) qui se fera un plaisir sans doute.
Bises (et pas de craintes, nous avons tous nos mèches !)
12 juin 2006 à 09:23
et si on a pas delphi, on ne peut pas avoir l'exe, donc...
(j'ai arrêté de faire des mèches blondes, mais je sens que ça blondit, ça blondit.... tout doucement...)
12 juin 2006 à 09:14
Et ben tu compiles le projet avec D6 ou équivalent selon affinités.
Et tu ouvres l'exe obtenu.
Clin d'oeil !
12 juin 2006 à 08:31
6 juin 2006 à 20:50
Serge, quel hasard,
ma Mamie est blonde.
Mort de rire ^^
6 juin 2006 à 10:36
Très bonne source.Il n'y a pas que les grands parents qui peuvent être intêressés, je connais des blondes...! Bravo
6 juin 2006 à 10:03
Je ferais ces modifs dès que je rentre ce soir (Je suis au boulot en ce moment^^)
En tout cas joli travail :)
Tu m'as appris des astuces bien utiles, je te remerci beaucoup! ;-)
6 juin 2006 à 03:36
jamais deux sans trois (lol)
Dans les clauses Uses tu peux également retirer ces unités :
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient
//celles qui suivent
{, IdUDPBase, IdUDPClient, IdDNSResolver};
Et aussi plus loin :
uses {Shellapi,} WinSock;
En tout cas ton code me plait je le trouve simpa, tu as fait l'éffort de commenter ton code ça c'est très bien.
Si tu nommais tes composants ta source serait encore plus facile à lire (pour toi comme pour nous)
Et pour finir la présentation a été soigné
pour toutes ces raisons et pour t'encourager à continuer
je met un 8/10
Bien, bonne continuation
@+
Cirec
6 juin 2006 à 03:03
pour commencer sais-tu que tu peux initialiser les variables globales ?
...
var
Form1: TForm1;
Noms: array[1..2] of string = ('le modem', 'Internet');
AdressesIP: array[1..2] of string;
AdresseActuelle: integer = 1;
Implementation
...
// du coup dans OnCreate de la form :
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
{plus besoin d'initialiser AdresseActuelle}
//AdresseActuelle := 1; // 1.modem 2.internet
// Pour éviter d'écrire les choses deux fois, j'ai utilisé des tableaux
// On ping en premier le modem et ensuite sur Internet
{et plus besoin d'initialiser Noms}
//Noms[1] := 'le modem';
//Noms[2] := 'Internet';
AdressesIP[1] := IPduModem(IPconfig)+'1'; // Première adresse: ip du modem
AdressesIP[2] := '212.27.32.5'; // Seconde adresse: IP du DNS de free.fr
// Conseil: Mettre si possible une addresse ip au lieu d'un nom de domaine www
// ceci pour éviter des messages d'erreures lorsque celui-ci ne répond pas.
end;
{ensuite pour préserver l'affichage des couleurs jusqu'au bout
Il faut à nouveau déplacer la procédure ChangeCouleur(Etat:Boolean); pour la placer avant Timer1Timer
Et modifier le code comme suit :
}
// Affecte la couleur aux fils (vert ou rouge)
procedure ChangeCouleur(Etat:Boolean);
var
couleurs: Tcolor;
begin
if Etat then couleurs := clLime // vert
else couleurs := clRed; // rouge
// Affecte la couleur au fil actuel
//si modem est Ok et Internet non la ligne reste verte pour le modem
// avant ce n'était pas le cas
if AdresseActuelle = 1 then Form1.Label2.Color := couleurs
Else
Form1.Label3.Color := couleurs;
end;
// Effectue un ping
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
ICMP.ReceiveTimeout := 3000;
try
ICMP.Host := AdressesIP[AdresseActuelle];
ICMP.Ping;
Application.ProcessMessages;
Except
on E: Exception do
Begin
Timer2.Enabled := False;
ChangeCouleur(False); // Affiche en rouge la non connection
pour connaitre le texte du message d'erreur activer la ligne suivante
// ShowMessage(E.Message);
MessageErreure;
End;
end;
end;
Ensuite peut tu expliquer le code suivant ?:
Var
sTime: string;
TempsDeReponse: integer;
begin
sTime := '';
//TempsDeReponse en 'ms'
TempsDeReponse := strtoint(Format('%s%d',[sTime,AReplyStatus.MsRoundTripTime]));
est ce bien utile de faire un transtypage ici ?
TempsDeReponse := AReplyStatus.MsRoundTripTime;
Devrait donner le même resultat
Voilà c'est tout
@+
Cirec
6 juin 2006 à 01:10
Tout fonctionne : bon travail
A+ et merci pour la modif ;)
6 juin 2006 à 00:49
et maintenant le modem est détecté même si la connection à Internet n'est pas établie
Donc bravo tu as réussi
Du coup, francky, chez toi ça devrait également fonctionner
Mais voilà une petite ombre au tableau ;-)
le prog coince et ne se termine plus
J'ai donc apporté une petite modification au code que voici :
{La procédure MessageErreur n'avait pas de problème mais faut la déplacer avant la procédure TimerTimer pour pouvoir l'utiliser dans cette dernièrre}
// Messages d'erreurs
Procedure MessageErreure();
begin // Faire appel à unit1 n'est pas utile
Form1.Label1.Caption := 'Probleme avec '+{Unit1.}Noms[{Unit1.}AdresseActuelle]+' (cliquez ici pour tester à nouveau)';
// pas besoin de vider le Mémo SetTextBuf le fait
//Form1.Memo1.Clear;
// Si erreure à la tentative du modem
if AdresseActuelle < 2 then
Form1.Memo1.SetTextBuf('Solution:'+#13+#10+'Vérifier que le modem est bien allumé et que le cable est bien branché.'+#13+#10+'Si non redémarrer l''ordinateur.')
else // Si erreure à la tentative sur Internet
Form1.Memo1.SetTextBuf('Solution:'+#13+#10+'S''il y a une lumière orange sur le modem alors redémarrer l''ordinateur et le modem.'+#13+#10+'S''il n''y a pas de lumière orange, alors attendre 30 secondes qu''elle s''allume.'+#13+#10+'Si toujours pas de lumière orange alors vérifier que le modem est correctement branché à la prise téléphonique.');
end;
{Procédure Timer1Timer après MessageError}
// Effectue un ping
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
ICMP.ReceiveTimeout := 3000;
try
ICMP.Host := AdressesIP[AdresseActuelle];
ICMP.Ping;
Application.ProcessMessages;
{Ici on change pour Except ce qui permet en cas d'erreur d'eviter que le prog frize on Disable les deux timers puis on affiche MessageErreur}
Except
Timer1.Enabled := False;
Timer2.Enabled := False;
MessageErreure;
end;
end;
Bonne prog
@+
Cirec
5 juin 2006 à 23:45
Moi aussi j'ai un BeWan sur port USB et tout fonctionne
Donc c'est pas la bonne piste
@+
Cirec
5 juin 2006 à 23:31
Enfin je le dévine ^^
C'est Francky qui m'a mis la puce à l'oreil. :)
Vous avez un Modem BeWan "en USB" (et non en Ethernet) et donc le modem ne répond pas aux pings.
Ce n'est pas un problème, car la fonction "ipconfig" (du programme) permet de deviner s'il le modem USB est allumé ou pas (si l'ipconfig retourne 127.0.0.1 alors le modem USB est éteint)
J'ai modifié le programme pour qu'il soit compatible avec les modems USB. J'espère que ça va marcher :)
5 juin 2006 à 22:28
Question toute simple, si elle ne l'est pas, dites-le ;-)
Quand vous faites un ping du modem dans la commande DOS est-ce que ça répond bien?
Si vous obtenez une réponse du ping, pourriez-vous me donner l'adresse IP du modem?
Je vais faire ce que je peux pour que ça fonctionne aussi chez vous :)
5 juin 2006 à 16:16
Oui il me semble effectivement qu'on aient le même FAI
mais chez moi je dois établir la connection Internet pour pouvoir utiliser le programme, mais ça je pense que tu as déjà testé.
ps : Source compilé sous D2005 avec Indy10
@+
Cirec
5 juin 2006 à 15:31
Merci pour l'explication du timer ;)
Par contre j'ai un Modem BeWan aussi et le meme FAI que Cirec (je crois ^^) donc je comprends pas pk ca ne fonctionne pas
@+
5 juin 2006 à 12:58
Merci pour vos feedback, je vais essayer de répondre au mieux :)
Si la détection du modem ne fonctionne pas, je pense que soit le modem ne répond pas aux ping, soit l'adresse IP du modem est faussé par une autre carte réseau (est-ce que vous avez plusieurs cartes réseaux?). Dans ce cas, vous pouvez spécifier vous même l'adresse du modem dans la procedure FormCreate.
Pour Francky23012301 :)
J'ai plusieurs raisons pour lesquels j'ai utilisé un Timer, la première c'est pour garder la main sur le programme (si non tout Freeze), la seconde c'est pour qu'il puisse y avoir une petite animation en attendant la réponse du ping. A la limite, j'aurai pu utiliser un Thread :)
Pour cirec,
Si je test la connection Internet en fesant un ping sur un DNS de free, c'est parce que Papi et Mamie ont la chance d'avoir une femme de ménage qui vient une fois par semaine et qui arrache à chaque fois les fils du modem au téléphonne. Si je m'arrête seul au test du modem et n'effectue pas le test Internet, le programme ne sera pas en mesure de les aider à résoudre leur problème.
Je sais que si Papi et Mami m'appellent, ce ne sera pas pour des problèmes aussi basiques qu'un simple câble débranché (m'est déjà arrivé plusieurs fois). Voilà ;-)
5 juin 2006 à 12:01
Alors chez moi tout fonctionne très bien.
Modem BeWan
la seule chose que je trouve bizarre c'est qu'il ait besoin d'une connexion établie à Internet pour me dire que tout fonctionne ???? ;-)
L'outil de diagnostic fournis par mon F.A.I. me détecte mon modem et sans être connecté à Internet (sauf si un câble est débranché bien sûr)
Pour le code je regarderais plus tard
@+
Cirec
5 juin 2006 à 11:54
Idem que Matt et pourtant la je suis entrain de t'écrire. Petit conseil : l'utilisation du Timer est inutile une simple boucle aurait fait l'affaire.
A+
5 juin 2006 à 10:38
moi j'ai un problème, je suis connecté à Internet via un modem donc jusque là OK mais quand je test si je suis connecté avec ton soft il me dit :
"Vérifier que le modem est bien allumé et que le cable est bien branché.
Si non redémarrer l'ordinateur." pourtant tout est bon (la preuve je suis entrain de mettre un commentaire sur ta source ;-) ).
5 juin 2006 à 09:45
D'aprés ce que j'ai vu dans le code et l'explication qu'a donné ekinoxjp, si tu as une passerelle ou un routeur sur l'adresse x.y.z.1 (où x, y,z correspondent aux 3 premiers octects de ton adresse IP) alors la détection du modem sera OK. Par contre suivant la façon dont ton réseau Intranet est structuré (si tu as une connection directe à l'internet via ton réseau Intranet) alors la connection internet fonctionnera aussi.
Salutations.
5 juin 2006 à 09:05