Qu’est-ce qu’un script et pourquoi l’utiliser ! #
Il arrive parfois qu’une application refuse de se fermer par la touche “ESC” (touche utilisée par défaut par mGalaxy pour fermer une fenêtre) ou de passer en mode “Plein écran”, etc. Dans ce cas, vous avez besoin d’un “Script” pour seconder l’émulateur.
Un “Script” est donc un petit logiciel placé entre mGalaxy et l’émulateur destiné à effectuer des tâches qui ne sont pas prévues par l’émulateur.
mGalaxy inclut déjà tous les scripts nécessaires au fonctionnement des émulateurs reconnus…mais si vous deviez ajouter un émulateur non encore reconnu par mGalaxy et également le script lui nécessaire, voici comment procéder.
A savoir que le scripts devra se trouver dans le dossier “Scripts” de mGalaxy et porter exactement le même nom que celui renseigné pour l’émulateur. Pour finir vous devrez vous assurez que le système renseignant cet émulateur (et donc le script correspondant) a bien la case “Utiliser le fichier script si disponible” cochée.
Création d’un script avec ‘AutoIt’ #
AutoIt est un langage de script gratuit de type BASIC conçu pour l’automatisation de l’interface graphique de Windows et la création de scripts en général. Il utilise une combinaison de frappes simulées, de mouvements de souris et de manipulation de fenêtres/contrôles afin d’automatiser des tâches.
• Vous devrez d’abord télécharger et installer le logiciel gratuit AutoIt here.
• Créez un script qui doit commencer par le code ci-dessous.
;----------========== Parsing (common to every scripts) ==========----------
; The script is being passed 2 parameters by mGalaxy.
; The first one contains the full path to the emulator.
; The second one contains parameters (optional) for the emulator PLUS the full path (between quotes) to the rom file.
;
; Line 13: $CmdLine is an array of size 3. $CmdLine[0] returns the total number of items in the array, $CmdLine[1] the 1st parameter, $CmdLine[2] the 2nd parameter
; Line 19: AutoIt requires that parameters sent by mGalaxy be enclosed in quotation marks.
; As the parameters themselves contain quotation marks, these have been replaced by a distinguishing sign (%s) so as not to cause any confusion in the constitution of the command line.
; So we now replace this distinguishing sign with quotation marks.
; Line 20: Some apps (MESS for instance, when it searchs for a system Bios) need to know the path to their 'Working Directory'. We do extract it from the emulator full path.
;
#include <MsgBoxConstants.au3>
If UBound($CmdLine) <> 3 Then
MsgBox($MB_SYSTEMMODAL, "Script execution error", "The script was expecting to receive 2 parameters but received " & UBound($CmdLine)-1, 10)
Exit 0
EndIf
local $app = $CmdLine[1]
local $command = StringReplace($CmdLine[2], "%s", """")
Local $workingDir = StringRegExpReplace($app, "\\[^\\]*$", "")
FileChangeDir($workingDir)
;---------------------------------------------------------------------------