Gestion events problème
Publié : mer. 07/sept./2016 15:23
bonjour,
j'ai beau chercher je ne vois plus .....
un petit code d'un ping tool qui renvoit le resultat de la commande dans un EditorGadget , pas moyen que le bouton stop fasse ce qu'il devrait ...
tant que le ping ne tourne pas, mes evenements répondent , fermer par ESC , bouton stop ... je me mélange les pinceaux avec les WaitWindowEvent , WindowEvent ,EventGadget
compliqué tout ça...
j'ai beau chercher je ne vois plus .....
un petit code d'un ping tool qui renvoit le resultat de la commande dans un EditorGadget , pas moyen que le bouton stop fasse ce qu'il devrait ...
tant que le ping ne tourne pas, mes evenements répondent , fermer par ESC , bouton stop ... je me mélange les pinceaux avec les WaitWindowEvent , WindowEvent ,EventGadget
compliqué tout ça...
Code : Tout sélectionner
;ping tool
;free code
;use at your own risks
Enumeration
#FEN1
#FEN1_Edit_Ip
#FEN1_Txt_Ip
#FEN1_Ping
#FEN1_Edit_2
#FEN1_Stop
EndEnumeration
MP_Graphics3DWindow(320, 200, 600, 450,"Ping_Test Jmg@2016 Press ESC to Quit", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(#FEN1,RGB(0,0,0))
TextGadget(#FEN1_Txt_Ip, 20, 50, 80, 25, " Adresse Ip :")
EditorGadget(#FEN1_Edit_Ip, 120, 50, 150, 20)
EditorGadget(#FEN1_Edit_2, 50, 150, 500, 250)
SetGadgetColor(#FEN1_Txt_Ip, #PB_Gadget_BackColor, RGB(0,0,0))
SetGadgetColor(#FEN1_Txt_Ip, #PB_Gadget_FrontColor, RGB(255,255,255))
SetGadgetColor(#FEN1_Edit_2, #PB_Gadget_BackColor, RGB(0,0,0))
SetGadgetColor(#FEN1_Edit_2, #PB_Gadget_FrontColor, RGB(255,255,255))
SetGadgetColor(#FEN1_Edit_Ip, #PB_Gadget_BackColor, RGB(0,0,0))
SetGadgetColor(#FEN1_Edit_Ip, #PB_Gadget_FrontColor, RGB(255,255,255))
SetGadgetText(#FEN1_Edit_Ip,"8.8.8.8")
ButtonGadget(#FEN1_Ping, 320, 50, 90, 20, " Ping ")
ButtonGadget(#FEN1_Stop, 420, 50, 90, 20, " Stop ")
Procedure ping()
ip.s = GetGadgetText(#FEN1_Edit_Ip)
While GetGadgetState(#FEN1_Stop) = 0
event = WindowEvent()
ping = RunProgram("ping.exe" ,ip.s ,"", #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide | #PB_Program_Ascii )
While ProgramRunning(ping)
out$ = ReadProgramString(ping)
AddGadgetItem(#FEN1_Edit_2, 0, out$)
Debug GetGadgetState(#FEN1_Stop)
Wend
Wend
EndProcedure
Repeat
event = WindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #FEN1_Ping
ping()
Case #FEN1_Stop
Break
EndSelect
EndSelect
Until GetAsyncKeyState_(#VK_ESCAPE)