j'ai un programme "A.exe" qui appelle un programme "B.exe".
Le programme A.exe se termine donc par :
Code : Tout sélectionner
RunProgram(B.exe","","")
End
Comment faire une transition propre ?
Code : Tout sélectionner
RunProgram(B.exe","","")
End
Code : Tout sélectionner
RunProgram(B.exe","","")
Delay(2000)
End
Oui, et j'ai eu une fois une erreur (le B.exe a planté)Fig a écrit :Aucune idée si ça peut marcher, mais, tu as essayé ça ?Code : Tout sélectionner
RunProgram(B.exe","","") Delay(2000) End
Code : Tout sélectionner
Declare Start()
Declare RunExeB()
Declare Exit()
Start()
Procedure Start()
OpenWindow(0, 0, 0, 0, 0, "EXE A", #PB_Window_SystemMenu | #PB_Window_Maximize )
ButtonGadget(0, 10, 10, 80, 24, "Lance ExeB")
BindGadgetEvent(0, @RunExeB())
BindEvent(#PB_Event_CloseWindow, @Exit())
Repeat : WaitWindowEvent() : ForEver
EndProcedure
Procedure RunExeB()
Protected Run = RunProgram("exeB.exe", "EXEA", "", #PB_Program_Open)
If Run
CloseProgram(Run)
Delay(500)
Exit()
Else
MessageRequester("Ooops", "ExeB.exe n'existe pas")
EndIf
EndProcedure
Procedure Exit()
End
EndProcedure
Code : Tout sélectionner
Declare Start()
Declare Exit()
;Si ce n'est pas exeA qui lance ce code alors fin du lancement
If ProgramParameter(0) <> "EXEA"
End
Else
Start()
EndIf
Procedure Start()
OpenWindow(0, 0, 0, 0, 0, "EXE B", #PB_Window_BorderLess | #PB_Window_Maximize | #PB_Window_BorderLess)
ButtonGadget(0, 10, 10, 80, 24, "Close EXEB")
BindGadgetEvent(0, @Exit())
BindEvent(#PB_Event_CloseWindow, @Exit())
Repeat : WaitWindowEvent() : ForEver
EndProcedure
Procedure Exit()
End
EndProcedure
Code : Tout sélectionner
SetEnvironmentVariable("DUMMY", "999")
Code : Tout sélectionner
GetEnvironmentVariable("DUMMY")
Code : Tout sélectionner
Global P$ ="P:\PROG\CyberlinkPhoto7\PhotoDirector7\PhotoDirector7.exe"
Global prog
Global.b exit
If OpenWindow(0, 0, 0, 220, 100, "Exemple...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StickyWindow(0,1)
ButtonGadget (1, 10, 60, 200, 30, "Fermer")
AddWindowTimer(0,10,500)
prog = RunProgram(P$,"","",#PB_Program_Open)
Repeat
Event = WaitWindowEvent(10)
Select Event
Case #PB_Event_Timer
Select EventTimer()
Case 10
Debug exit
If IsProgram(prog) <> 0
exit = 1
EndIf
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case 1
CloseWindow(0)
End
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow Or exit = 1
End
EndIf
Code : Tout sélectionner
;Programe # 1
;POUR PASSER_DES INFOS TEST 1 A TEST 2
;Programe # 1
OpenWindow(1,20,20,300,300,"Test 1",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(4, 120,250, 80, 25,"Test")
StringGadget(1,10,10,220,20,"")
StringGadget(2,10,40,220,20,"")
StringGadget(3,10,70,220,20,"")
Repeat
ev = WaitWindowEvent()
Select ev
Case #PB_Event_Gadget
Select EventGadget()
Case 4
Text$="E:\temp\dummy.avi"
Text2$="F:\dummy2.avi"
Text3$="This is StrinGadget XX"
hWnd = FindWindow_(0,"Test 2")
hWndEdit = FindWindowEx_(hWnd, 0, "edit", 0)
hWndEdit2 = GetWindow_(hWndEdit,#GW_HWNDNEXT)
hWndEdit3 = GetWindow_(hWndEdit2,#GW_HWNDNEXT)
SendMessage_(hWndEdit,#WM_SETTEXT,0,@Text$)
SendMessage_(hWndEdit2,#WM_SETTEXT,0,@Text2$)
SendMessage_(hWndEdit3,#WM_SETTEXT,0,@Text3$)
; ev = #PB_Event_CloseWindow
EndSelect
EndSelect
Until ev = #PB_Event_CloseWindow
Code : Tout sélectionner
;Programe # 2
;POUR PASSER_DES INFOS TEST 2 A TEST 1
;Programe # 2
OpenWindow(0,20,20,300,300,"Test 2",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(4, 120,250, 80, 25,"Test")
StringGadget(1,10,10,220,20,"")
StringGadget(2,10,40,220,20,"")
StringGadget(3,10,70,220,20,"")
Repeat
ev = WaitWindowEvent()
Select ev
Case #PB_Event_Gadget
Select EventGadget()
Case 4
Text$="c:\temp\dummy3.avi"
Text2$="c:\dummy3.avi"
Text3$="This is StrinGadget 3"
hWnd = FindWindow_(0,"Test 1")
hWndEdit = FindWindowEx_(hWnd, 0, "edit", 0)
hWndEdit2 = GetWindow_(hWndEdit,#GW_HWNDNEXT)
hWndEdit3 = GetWindow_(hWndEdit2,#GW_HWNDNEXT)
SendMessage_(hWndEdit,#WM_SETTEXT,0,@Text$)
SendMessage_(hWndEdit2,#WM_SETTEXT,0,@Text2$)
SendMessage_(hWndEdit3,#WM_SETTEXT,0,@Text3$)
; ev = #PB_Event_CloseWindow
EndSelect
EndSelect
Until ev = #PB_Event_CloseWindow