Page 1 sur 1

[R] Creation de GUI (Surveillance Ping)

Posté : ven. 23 janv. 2015 15:28
par DimVar
Bonjour,


Si qqun peut me préparer une GUI, contenant :
une zone de saisie d'IP,
une zone dans laquelle s'ajoute la ou les adresses IP, elle même contenant un "voyant" status (texte ou image/icon),
une zone de gestion des actions pour la zone précédente (supprimer de la zone et mettre en pause)

D'avance merci.

Cdlt, Dimvar.

Re: [..] Demande de GUI  

Posté : ven. 23 janv. 2015 19:07
par TommyDDR
Je n'avais rien dit pour l'ancien sujet mais : Je vous conseille de mettre un titre plus explicite, beaucoup de gens n'ouvrent les sujets que si le titre les y invitent.

Re: [..] Demande de GUI

Posté : dim. 25 janv. 2015 22:47
par jguinch
► Afficher le texte

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 26 janv. 2015 11:49
par DimVar
@Tommy : Merci, rectifié.
@Jg : Merci, je jette un oeil cet aprem.

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 26 janv. 2015 15:03
par DimVar
Top ! Merci JG pour le temps passé.
Je me permet qq questions pour ma culture... (d'autres viendront surement :mrgreen: )
-------------------------------------------


S'agit il d'un oubli ?

Code : Tout sélectionner

Global $iRunning = 0
Y a t il une raison pour poser des functions dans le pavé des variables ? EX : _GUICtrlListView_SetColumnWidth

Pourquoi chrW() plutôt qu'une string pour le bouton d'ajout d'une IP ?

Comment faire en sorte que la touche entrée valide la saisie de l'IP ?


Cdlt, Dimvar.

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 26 janv. 2015 15:56
par TommyDDR
1) ChrW(0xBB) permet d'avoir un double chevron vers la droite, rien ne vous oblige à le mettre, c'est juste une question de préférence niveau beauté
2) Pour que la touche enter valide la saisie de l'ip, utilisez GUISetAccelerator, voici un exemple :
► Afficher le textecode
Pour le cas de la touche entrer, vous pouvez aussi utiliser

Code : Tout sélectionner

GUICtrlSetState($button, $GUI_DEFBUTTON

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 26 janv. 2015 17:10
par DimVar
TommyDDR a écrit :1) ChrW(0xBB) permet d'avoir un double chevron vers la droite, rien ne vous oblige à le mettre, c'est juste une question de préférence niveau beauté
ça je vois, mais l'aide parle d'un chiffre/nombre entre 0-65535. (et non d'une valeur hexa)...

[EDIT] Merci pour le GUISETACCELERATORS

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 26 janv. 2015 17:20
par TommyDDR
Une valeur en hexa est est un nombre.
0xBB = 187, c'est juste une autre maniere de l'écrire, mais c'est la même chose ;)

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 26 janv. 2015 17:48
par DimVar
Ok, merci.

Quel est l’intérêt de la boucle dans _addip() ?

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 26 janv. 2015 18:35
par jguinch
Global $iRunning = 0 est un oubli (j'étais parti sur un truc que j'ai supprimé)
Pour la boucle dans _AddIp(), elle permet simplement d'éviter qu'une même adresse IP soit ajoutée deux fois dans la liste.
Pour ChrW (0xBB), c'est un truc que j'ai récupéré dans un de mes scripts. J'étais parti avec les valeurs affichés dans charmap.
Pour _GUICtrlListView_SetColumnWidth, il est placé juste après la listview. Ca peut être placé n'importe où, du moment que la variable (hwnd) est accessible.

Re: [..] Creation de GUI (Surveillance Ping)

Posté : mar. 27 janv. 2015 14:58
par DimVar
Merci JG.

1).Est il possible de faire en sorte que :
Lorsque l'on execute la fonction _go (), elle teste toutes les IP en un tour de boucle, plutot que l'une apres l'autre. Dés que l'on a 10 IPs, on attends 10x sleep(2000) $iTimeout....

2).Quelle est cette bizarrerie ?

Code : Tout sélectionner

_GUICtrlListView_SetItemImage ($ID_Listview, $i,[b](Ping($sIP, $iTimeOut) ? 1 : 2))[/b]
Merci.

Re: [..] Creation de GUI (Surveillance Ping)

Posté : mar. 27 janv. 2015 15:31
par TommyDDR
2) C'est l'opérateur ternaire (http://forum.phpfrance.com/faq-tutoriel ... 14111.html).
"condition ? _vrai : _faux"
Si la condition est vrai, alors la valeur "_vrai" sera utilisée, sinon, c'est la valeur "_faux" qui sera prise.

Re: [..] Creation de GUI (Surveillance Ping)

Posté : mar. 27 janv. 2015 16:02
par DimVar
Hum hum...
Donc ca sert à forcer le return value de Ping, en 0 ou 1 ?
Mais dans ce cas, que vaudra le code retour de Ping quand il pinguera et inversement ?
Quid de @error en cas d'echec ? Elle n'est plus renseignée ?

Re: [..] Creation de GUI (Surveillance Ping)

Posté : mar. 27 janv. 2015 16:13
par TommyDDR
non, ça sert à afficher une image en fonction du retour de la fonction ping.
Cela revient à faire ça :

Code : Tout sélectionner

Local $ping = Ping($sIP, $iTimeOut)
Local $image
If($ping = 0) Then
    $image = 2
Else
    $image = 1
EndIf
_GUICtrlListView_SetItemImage ($ID_Listview, $i, $image)

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 02 févr. 2015 10:00
par DimVar
@Tommy : Merci

petit UP :
1).Est il possible de faire en sorte que :
Lorsque l'on execute la fonction _go (), elle teste toutes les IP en un tour de boucle, plutot que l'une apres l'autre. Dés que l'on a 10 IPs, on attends 10x sleep(2000) $iTimeout....

[Petit UP]

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 02 févr. 2015 12:30
par TommyDDR
Le plus simple serait d'exécuter le commande ping dans un processus différent et d'analyser les retours console dans une boucle.
Le plus propre serait de recoder le ping en mode non bloquant.

Voici pour le plus simple :
► Afficher le textecode

Re: [..] Creation de GUI (Surveillance Ping)

Posté : lun. 02 févr. 2015 21:01
par jguinch
Pour avoir plusieurs Ping en parallèle, tu n'auras pas d'autre choix que de les faire exécuter dans des programmes externes (comme l'a proposé Tommy).
Je suis reparti de mon code précédent et ajouté quelques trucs.
L'exécution du Ping se fait dans un process parallèle, mais avec la commande Ping AutoIt (qui permet de récupérer le temps de réponse facilement).
En utilisant AdLibRegister, on arrive à faire un truc non bloquant, mais sans forcément avoir un truc simple.
Pour les résultats, j'ai choisi de les stocker temporairement dans un fichier INI, qui évite l'utilisation d'un StdOutRead (c'est une autre méthode, simplement)
Pour les 10 Ping simultanés, c'est paramétrable, mais faudra y aller doucement :wink:
Ca donne ça pour l'instant :
► Afficher le texte
Voilà, j'ai une fois de plus réinventé la roue, car ce genre de truc existe déjà depuis belle lurette. :D

Re: [..] Creation de GUI (Surveillance Ping)

Posté : mar. 03 févr. 2015 15:01
par DimVar
Merci Jg.
Désolé de t'avoir sollicité à "réinventer la roue" mais les qq outils que j'ai pu trouver étaient soit trop complet, soit en share, ou pas du tout intuitif.
Bref, je teste ça, mais à première vue, ça fait le boulot.

Cdlt, Dimvar.