voilà j'ai fait un code qui récupere le texte d'une fenetre DOS, mais le texte est mal récupérer.
Testez ce code vous comprendrez mieux.
Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
Enumeration
#IPAddress_0
#Button_0
#String_0
EndEnumeration
If OpenWindow(#Window_0, 0, 0, 400, 40, "Ping Powah", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
IPAddressGadget(#IPAddress_0, 10, 10, 150, 20)
ButtonGadget(#Button_0, 170, 10, 220, 20, "Lancer une requête ping")
EditorGadget(#String_0, 10, 40, 380, 360, #PB_Editor_ReadOnly)
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #Button_0
ip1 = IPAddressField(GetGadgetState(#IPAddress_0), 0)
ip2 = IPAddressField(GetGadgetState(#IPAddress_0), 1)
ip3 = IPAddressField(GetGadgetState(#IPAddress_0), 2)
ip4 = IPAddressField(GetGadgetState(#IPAddress_0), 3)
adresseip$ = Str(ip1)+"."+Str(ip2)+"."+Str(ip3)+"."+Str (ip4)
Programme = RunProgram("ping.exe", adresseip$, "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide)
If IsProgram(Programme)
While ProgramRunning(Programme)
Sortie$ + ReadProgramString(Programme) + Chr(13)
Wend
EndIf
AddGadgetItem(#String_0, -1, Sortie$, 0)
ResizeWindow(#Window_0, WindowX(#Window_0), WindowY(#Window_0), 400, 410)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
@++