Page 1 sur 1

GUICtrlSetData() - Rafraîchissement du Bk.

Posté : mer. 06 févr. 2019 11:10
par Barthandelus
Bonjour,

J'utilise actuellement l'AU3 pour observer le réseau (via PCAP) et incrémenter une base de donnée des différentes IP / protocoles utilisés / etc pour faire un audit de sécurité en local. J'incrémente un champ (label) par le nombre de paquet reçu lors de l'analyse en "real-time". Bonne idée ou pas, cela fonctionne. Mais lors des piques de packets (1900 /sc), bien que le label se mette bien à jour, j'ai l'impression que l'AU3 détruit et recréer l'élément avec le nouveau texte, parce que je vois le background (Bk) devenir "blanc naturel", puis se ré-appliquer en transparent.

C'est bête, mais comme je compte mettre en libre service le code, je pense que ça va gêner l’œil des utilisateurs. Une idée de comment fonctionne GUICtrlSetData() à ce niveau et comment pallier au problème ? La solution simple serait d'incrémenter l'affichage toutes les x secondes en incrémentant la variable en background en temps réel, mais je me demande s'il y a une solution directement prévue en AU3.

Une idée ?

Re: GUICtrlSetData() - Rafraîchissement du Bk.

Posté : ven. 08 févr. 2019 15:08
par TommyDDR
Bonjour,
Je pense voir ce dont vous voulez parler, mais (et c'est valable en règle général si vous voulez que les gens vous aident) vous devriez fournir un code simplifié qui reproduit votre problème.
En effet, si quelqu'un veut vous aider, vous le forcez à créer un script et essayer de trouver ce dont vous voulez parler.

Voilà ce que j'ai fait (et je n'ai pas de problème) :

Code : Tout sélectionner

#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)
Opt("MustDeclareVars", 1)

Global $gui
Global $taille[2] = [300, 300]
Global $label
Global $count = 0

$gui = GUICreate("", $taille[0], $taille[1])
GUISetOnEvent($GUI_EVENT_CLOSE, "quit", $gui)
GUISetBkColor(0x000000, $gui)
$label = GUICtrlCreateLabel("0", 10, 10, 100, 20)
GUICtrlSetColor($label, 0xFFFFFF)
GUICtrlSetBkColor($label, $GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW, $gui)

While(True)
	$count += 1
	GUICtrlSetData($label, $count)
	Sleep(10)
WEnd

Func quit()
	Exit
EndFunc