On peut ainsi voir l'utilisation de ProgramRunning(program), AvailableProgramOutput(program)
et ce qui touche à l'écoute de programmes externes. (ipconfig dans ce cas)
Code : Tout sélectionner
Procedure.s MessageRequesterIP(ARS_optionIP=0)
; by Ar-S / Sept 2012
; Récupération de ma config réseau via IpConfig
; ARS_optionIP est facultatif.
; 0 est l'équivalent des infos retournées par ipconfig
; 1 est l'équivalent des infos retournées par ipconfig /all
Protected.s New,Ligne,Tout
If ARS_optionIP < 0 Or ARS_optionIP > 1
option$ = ""
EndIf
If ARS_optionIP = 1
option$ = "/all"
EndIf
Tout.s = ""
program = RunProgram("ipconfig",option$,"",#PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
While ProgramRunning(program)
If AvailableProgramOutput(program)
Ligne.s = ReadProgramString(program) +Chr(10)
If Ligne <> "" And Ligne <> ":" And Ligne <> Chr(10)
Ligne = Trim (Ligne, Chr(10)) ; retour à la ligne
Ligne = Trim (Ligne, Chr(58)) ; les 2 points ":"
NbrCar = Len(Ligne)
DernierCar.s = Mid(Ligne,Len(Ligne)-1,1)
If DernierCar = Chr(58)
Ligne + "[Rien]"
EndIf
Ligne + Chr(10)
Tout = Tout + Ligne
; Fitrage des derniers caractères parasites
New.s = RemoveString(Tout,"ÿ")
New.s = RemoveString(New,"…")
New.s = ReplaceString(New,"‚","é")
New.s = ReplaceString(New,"::",": [Rien]")
New.s = ReplaceString(New,"“","ô")
EndIf
EndIf
Wend
MessageRequester("Resultat IP Config", New,0)
EndProcedure
MessageRequesterIP() ; => ipconfig
MessageRequesterIP(1) ; => ipconfig /all