- Deux (ou plus) scripts compilés doivent échanger des paramètres alternativement.
Seul un script peut être actif à la fois.
Le(s) script(s) compilés additionnels sont compilés dans le script principal pour n’en faire qu’un et ils devront impérativement s’installer dans %TEMP%.
Romeo.exe est le programme principal (il contiendra Juliette.exe) :
If $CmdLineRaw = "Merci" Then Exit MsgBox($MB_TOPMOST, "Ici Roméo !", "Diantre, Juliette vient de me remercier de lui avoir envoyé mon adresse.")
Local $bErrFlag = FileInstall("Juliette.exe", @TempDir & "\Juliette.exe", 1)
If $bErrFlag = False Then MsgBox($MB_TOPMOST, "Juliette veut pas !", "FileInstall dans %TEMP% refusé.")
Local $sTxtParam = @ScriptFullPath
Local $sTransfertPath = @TempDir & "\Juliette.exe" & ' "' & $sTxtParam & '"' ; espace de séparation après le path
Local $iPID = Run($sTransfertPath, @TempDir)
If Not $iPID Then Exit MsgBox($MB_TOPMOST, "Juliette veut pas !", "Juliette.exe ne se lance pas.")
If Not $CmdLineRaw Then Exit MsgBox($MB_TOPMOST, "Roméo plante !", "Il n'arrive pas à passer son adresse à Juliette.")
Local $sTxtParam = $CmdLineRaw
MsgBox($MB_TOPMOST, "Ici Juliette", "J'ai reçu les paramètres suivants :" & @CRLF & $sTxtParam & @CRLF & @CRLF & "C'est l'adresse de Roméo que je vais pouvoir remercier céant !")
Local $iPID = Run($sTxtParam & " Merci") ; espace de séparation après le path
If Not $iPID Then Exit MsgBox($MB_TOPMOST, "Roméo plante !", "Romeo.exe ne se lance pas dans %TEMP%.")
Romeo.exe s’exécute parfaitement bien et Juliette.exe lui répond tout aussi bien.
Donc, jusqu’ici, tout va bien.
Puis, j’ai imaginé que l’histoire du couple shakespearien fût réécrite par Walt Disney et que le « happy end » Hollywoodien impose un : « Ils vécurent heureux et eurent beaucoup d’enfants ». Chaque bébé.exe pèserait environ 1 Mo à la naissance. Puisque Romeo.exe contenait l’interpréteur AutoIt, j’allais compiler les scripts additionnels au format .a3x pour alléger la mule. Donc, dans Romeo.au3, j’ai remplacé tous les « .exe » par des « .a3x » et ajouté en-tête « #pragma compile(AutoItExecuteAllowed, True) » puis compilé Juliette.a3x et Romeo.exe.
À partir de là, les amants se sont brouillés : Romeo.exe n’arrive pas à lancer Juliette.a3x. Cependant, Juliette.a3x minaude, mais accepte d’être lancée manuellement depuis le dossier Temp.
À présent, j’aimerais bien que vous soulagiez la mule sans vexer Juliette en narrant la suite de l’histoire…
Merci.