Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2791 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Autre Truc bizarre ! [Newby]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Autre Truc bizarre ! [Newby]

n°360657
Kyle_Katar​n
Posté le 14-04-2003 à 16:58:31  profilanswer
 

Pourquoi est ce que la fonction suivante

Code :
  1. function IsOnline(koi:string):boolean;
  2. var
  3.   ShExecInfo : SHELLEXECUTEINFO;
  4.   params:string;
  5.   outchem:string;
  6. begin
  7.   outchem:='c:\test.txt';
  8.   params:= koi + ' -l 1 -n 1 > ' + outchem;
  9.   ShExecInfo.cbSize := sizeof(SHELLEXECUTEINFO);
  10.   ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
  11.   ShExecInfo.lpVerb := nil;
  12.   ShExecInfo.lpFile := PChar('ping.exe');
  13.   ShExecInfo.lpParameters := PChar(params);
  14.   ShExecInfo.lpDirectory := nil;
  15.   ShExecInfo.nShow := SW_HIDE;
  16.   ShellExecuteEx(@ShExecInfo);
  17.   while (WaitForSingleObject(ShExecInfo.hProcess,0)=WAIT_TIMEOUT) do
  18.     application.ProcessMessages;
  19.   IsOnline:=true;
  20. end;


 
Ne me crée elle pas le fichier 'c:\test.txt' en y exportant le résultat de "ping" ? (alors que sous DOS ça marche sans pb...)


Message édité par Kyle_Katarn le 14-04-2003 à 20:03:21
mood
Publicité
Posté le 14-04-2003 à 16:58:31  profilanswer
 

n°360727
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-04-2003 à 17:50:59  profilanswer
 

je ne pense pas que le ">" pour faire une redirection fonctionne avec un ShellExecute...
 
Si c'est juste pour voir si un serveur répond y a probablement plus propre :D  par ex le compo TIdIcmpClient dans la palette Indy Client, je crois.


Message édité par antp le 14-04-2003 à 17:52:07

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°360793
Kyle_Katar​n
Posté le 14-04-2003 à 19:10:07  profilanswer
 

C'est marrant que ça marche pas...  
 
Ok pour le compo, je débute donc je suis reconnaissant pour ce genre de conseil de modo avisé ;-)

n°360851
Kyle_Katar​n
Posté le 14-04-2003 à 20:02:42  profilanswer
 

J'utilise maintenant le code suivant, où ping est le composant que tu m'as indiqué.
 
Quand je "pingue" une machine qui n'est pas connectée, je me paye une exception EIdSocketError qui me dit que l'hôte n'est pas trouvé. Pourquoi le try...except suivant ne résoud pas le problème ?
 

Code :
  1. function IsOnline(koi:string):boolean;
  2. begin
  3.   Form1.ping.Host:=koi;
  4.   Form1.ping.ReceiveTimeout:=500;
  5.   try
  6.     Form1.ping.Ping;
  7.     IsOnline:=(Form1.ping.ReplyStatus.ReplyStatusType=rsEcho);
  8.   except
  9.      on EIdSocketError do IsOnline:=false;
  10.   end;
  11. end;

n°360868
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-04-2003 à 20:26:46  profilanswer
 

Peut-être parce que la fonction Ping n'est pas bloquante ? Y a pas on OnError pour lequel il faut mettre le code à 0 si on ne veut pas que l'erreur survienne ? J'ai pas la doc d'Indy sous la main.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°360964
Kyle_Katar​n
Posté le 14-04-2003 à 22:05:19  profilanswer
 

merci, je vais regarder de ce coté !

n°364708
Ciler
Posté le 17-04-2003 à 12:50:58  profilanswer
 

antp a écrit :

je ne pense pas que le ">" pour faire une redirection fonctionne avec un ShellExecute...
 
Si c'est juste pour voir si un serveur répond y a probablement plus propre :D  par ex le compo TIdIcmpClient dans la palette Indy Client, je crois.


 
Je confirme, le > est une commande specifique au dos, et ne peut donc etre utilisee dans du delphi ou autre language de prog d'ailleurs.

n°364744
Kyle_Katar​n
Posté le 17-04-2003 à 13:25:57  profilanswer
 

même en tant que paramètre ? bizarre.

n°364928
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-04-2003 à 14:30:19  profilanswer
 

y a moyen, suffit d'exécuter
 
cmd /c ping ip > fichier  
sous NT
 
command /c ping ip > fichier
sous 9x
 
Mais bon passer par ping pour voir si un serveur est online c'est pas ce qu'il y a de mieux ;)


Message édité par antp le 17-04-2003 à 14:30:45

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°365147
Kyle_Katar​n
Posté le 17-04-2003 à 16:19:56  profilanswer
 

Finalement j'ai adopté l'ICMP plus "propre" comme méthode ;-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Autre Truc bizarre ! [Newby]

 

Sujets relatifs
PHP Objet : Un truc bizardPetit truc à la con sur VB
problème bizarre: connexion base mysql[JS] Pb bizarre
[newby inside] -> transformer application en appletgros truc de n00b mais moi je c'est pas le faire :)
filesize() ? comprends pas un trucProbleme bizarre avec php myadmin
un ptit truc tout con mais qui plante, pourquoi ?(pointeur)problème bizarre (avec getline length() et cout)
Plus de sujets relatifs à : Autre Truc bizarre ! [Newby]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR