bah tu met pas waitprogram(), ni l'option qui fait attendre le programme.
Ou alors tu lance ton programme depuis un thread, et c'est le thread qui attend, puis signale que le programme est fini ^^
Un petit exemple, ça éclaircit toujours mieux les choses
[edit] Arf, Fred, tu m'as grillé !
Code : Tout sélectionner
Procedure Pointille(bla)
a = 0
Repeat
SetGadgetText(0, LSet("Attente ", 8 + a, "."))
a + 1
If a = 5 : a = 0 : EndIf
Delay(500)
ForEver
EndProcedure
Procedure LancementProgramme(*adresse_nom_prog)
id_prog = RunProgram(PeekS(*adresse_nom_prog), "", "", #PB_Program_Open)
If id_prog
WaitProgram(id_prog)
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 120, 40, "blabla", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
TextGadget(0, 10, 10, 100, 20, "Attente")
EndIf
; lancement des pointillés d'attente
thread_pointille = CreateThread(@Pointille(), 0)
; lancement du thread de lancement du programme
prog.s = "C:\Windows\System32\calc.exe"
thread_program = CreateThread(@LancementProgramme(), @prog)
Repeat
event = WaitWindowEvent(100)
If IsThread(thread_program) = 0 : event = #PB_Event_CloseWindow : EndIf
Until event = #PB_Event_CloseWindow
KillThread(thread_pointille)
End