Launcher Personnalisé

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Launcher Personnalisé

#21

Message par mikell »

Modifier le fichier à chaque donnée entrée, c'est lourdasse
Suggestion : stocker les données dans des variables

Code : Tout sélectionner

			Case $aPanel[1]
				Switch $nMsg[0]
					Case $hButton1
						$name = GUICtrlRead($hInput1)
						; MsgBox(32, "Test", $name)
				EndSwitch
			Case $aPanel[2]
				Switch $nMsg[0]
					Case $hButton2
						$language = GUICtrlRead($Combo1)
						; MsgBox(32, "Test", $language)
				EndSwitch
Et tout modifier en une seule fois à la fin avec un bouton "enregistrer" (avec la traditionnelle Msgbox de confirmation)

Code : Tout sélectionner

FileCopy("test.xml", ".\test.xml.bak")  ; backup
$s = FileRead("test.xml")
$s = StringRegExpReplace($s, '(?<=<PersonaName>)[^<]+', $name)
$s = StringRegExpReplace($s, '(?<=<Language>)[^<]+', $language)
; Msgbox(0,"", $s)
; FileDelete("test.xml")
; FileWrite("test.xml", $s)
Il va servir à quoi le champ "options" ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#22

Message par liberodark »

Parfait j'ai réussi à le mettre ! mais il manque les fonctions sur les boutons.
Merci mikell je regarde cela plus tard car j'ai encore un peut de mal. (mais je souhaite optimiser le code après que tout soit fait)
Par contre comment faire pour dès que le launcher ce lance il fait une config.xml.bak une sauvegarde du fichier config ?

Cordialement

comment adapter ce code :

Code : Tout sélectionner

Func _SetName($sName, $sFilePath)
	Local $fFile, $sBuff = "", $sNewLine, $bEnd = false, $iCurrentLine = 1

	$fFile = FileOpen($sFilePath, 0) ; reading only
	Do
		$sBuff = FileReadLine($fFile)
		if (StringRegExp($sBuff,"\<PersonaName\>.*\<\/PersonaName\>")) Then
			$sNewLine = StringRegExpReplace($sBuff,"\<PersonaName\>.*\<\/PersonaName\>", "<PersonaName>" & $sName & "</PersonaName>")
			_FileWriteToLine($sFilePath, $iCurrentLine, $sNewLine, True)
			$bEnd = True
		EndIf
		$iCurrentLine+=1
	Until ($bEnd)

	FileClose($fFile)
EndFunc
à cela pour les boutons 3 et 4 du panel 4:

Code : Tout sélectionner

MsgBox(64, "Launcher", "Lancement du jeu !")
Run("Game\app.exe -appid 406170", "Game\")
Exit
Cordialement
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Launcher Personnalisé

#23

Message par mikell »

Code : Tout sélectionner

Case $aPanel[4]
	Switch $nMsg[0]
		Case $hButton3
			Run... etc
	EndSwitch
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#24

Message par liberodark »

C'est bon j'ai trouvé mais j'ai un bug je crois bien
Modifié en dernier par liberodark le jeu. 19 mai 2016 19:13, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Launcher Personnalisé

#25

Message par mikell »

Oublie le code de la fonction _setname() qui n'a rien à voir
Faut mettre ça dans la boucle while

Code : Tout sélectionner

While 1
	Sleep(10)
	$nMsg = GUIGetMsg(1)
	Switch $nMsg[1]
		Case $hMainGUI
			.....
		Case $aPanel[4]
			Switch $nMsg[0]
				Case $hButton3
					Run... etc
			EndSwitch
	EndSwitch
WEnd
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#26

Message par liberodark »

C'est corrigé !
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#27

Message par liberodark »

Donc maintenant auriez vous une idée de comment sauvegarder le fichier config.xml en config.xml.bak ?
Cela est il possible ?

Cordialement

PS : UN ÉNORME MERCI à toute les personnes qui mon aidé sur ce magnifique projet ^^
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: Launcher Personnalisé

#28

Message par blacksoul305 »

mikell a écrit :FileCopy("test.xml", ".\test.xml.bak") ; backup
mikell y a répondu en avance.
Étudiant en 2ème année de Licence Informatique.
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#29

Message par liberodark »

Ou doit je le mettre pour que cela ce fasse automatiquement au lancement mais sans répétition pour pas que ça re sauvegarde à chaque démarrage mais seulement une fois ?
Cela est faisable de sauvegarder juste au premier démarrage mais pas au autres ?
Sauf si il y a seulement la solution du bouton ?

Cordialement
PS : merci mikell pour cette fonction que je souhaite mettre ^^
Et merci blacksoul305 pour me l'avoir spécifié en citant mikell
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: Launcher Personnalisé

#30

Message par blacksoul305 »

Là aussi, plusieurs solutions s'offrent à toi.
  • Ajouter un champ dans le fichier config.xml
  • Créer un nouveau fichier
  • Écrire une clef dans le registre
Pour le fichier XML, le sujet cite/donne plein de fonctions.
Pour un nouveau fichier, se référer aux fonctions File...
Pour la solution du registre, voir les fonctions Reg...
Étudiant en 2ème année de Licence Informatique.
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#31

Message par liberodark »

Ajouter un champ dans le fichier config.xml
comment faire cela ?
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: Launcher Personnalisé

#32

Message par blacksoul305 »

Par champ je voulais dire une balise du style : <Updated>true</Updated>.Si la valeur est "true", alors on a pas besoin d'effectuer de changement, le launcher a déjà été configuré.
Après personnellement, dans un launcher, je ne vois pas l'intérêt de cela. Si jamais la personne fait des modifs, on modifie le fichier (le sauvegarde à la rigueur) et si elle n'a pas de modifs à faire, elle lance le jeu tout simplement.

EDIT : cela peut ne pas marcher également. Je pense notamment au fait que les jeux ont l'habitude de vérifier l'intégrité de leurs fichiers, et si jamais tu n'es pas censé toucher à ce config.xml, peut-être qu'il pourrait te crier dessus. L'autre solution serait la seconde de ma liste, utiliser un autre fichier. Les fichiers .INI sont efficaces pour ça. Tu trouveras tout ce dont tu as besoin sur le forum en plus.
Étudiant en 2ème année de Licence Informatique.
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#33

Message par liberodark »

OK cela me parait pas super pour le champ dans le xml.
Le quel est le mieux entre registres ou nouveau fichier.
C'est fonction est très importante.
Nouveau fichier me parait bien mais il faut que on puisse le restaurer.
Le fichier config peut être copiez en .bak cela ne pose pas de problème mais si cela peut ce faire tout seulement ce serait super

Cordialement
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: Launcher Personnalisé

#34

Message par blacksoul305 »

Chacune de ces possibilité ont des avantages et des inconvénients. L'écriture dans le registre est discrète, et l'utilisateur ne saura pas modifier par lui même la valeur (pas tous du moins). Cela dit c'est pas conseillé de toucher au registre quand on est débutant et si jamais l'utilisateur supprime ton programme, une clef inutile occupera une place dans le registre (il faut penser à l'enlever du coup). Le fichier quand à lui est simple à mettre en place et on peut vérifier son existence ou non avec une simple fonction. Si ce dernier est corrompu on peut le remplacer facilement. Le bémol c'est que l'utilisateur peut y toucher. A toi de voir !
Étudiant en 2ème année de Licence Informatique.
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#35

Message par liberodark »

Je préfère le fichier si vous avez idée de code pour tester et aussi donc vérifier son existence.
Registre je veut pas trop de trace.
Merci des renseignements
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: Launcher Personnalisé

#36

Message par blacksoul305 »

Je pense qu'avec la doc AutoIt, les fonctions File... et Ini..., l'outil de recherche sur le forum et les sections "Aide générale", "Tutoriels" tu devrais arriver à rédiger des bouts de code par toi même. Un programme c'est de la conception, du développement et beaucoup (beaucoup) de débogage. Je vais reprrendre cette phrase rendu célèbre de Yu-Gi-Oh : "A toi de jouer !".

Bonne chance :)
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Launcher Personnalisé

#37

Message par mikell »

si vous avez idée de code pour tester et aussi donc vérifier son existence.
If not FileExists(...) Then Filecopy(...)
Et dans le script, tu peux décider de forcer un FileCopy par l'action d'un bouton
Tu peux aussi choisir de nommer différemment plusieurs backups, en incluant dans leur nom un numéro, la date...
etc
Là on est dans du très très basique, quelque chose que tu aurais pu trouver facilement grâce au fichier d'aide d'AutoIt
Suggestion : voir/revoir les bases avant de poser ce genre de question sous peine de lasser les bonnes volontés ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#38

Message par liberodark »

Merci à vous pour c'est informations je vais chercher plus vers le ini.

Cordialement
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#39

Message par liberodark »

Ok je pense avoir trouvé une solution en attendant !
Pour sauvegarder !
Mais je n'arrive pas à restaurer.

Voici la sauvegarde sous les conseils de mickel :

Code : Tout sélectionner

FileCopy("Game\config.xml", "Game\config.xml.bak") ; backup
Pour ma part je me suis dit que la restauration serait dans ce genre :

Code : Tout sélectionner

FileCopy("Game\config.xml.bak", "Game\config.xml") ; restore
J'arrive pas à trouver un exemple de restauration basique
J'ai aussi tenté un "FileDelete" puis FileCopy mais cela ne convient pas
Par contre j'ai trouvé la solution de sécurité ^^
Avant que l'utilisateur met son pseudo ce qui devrait être le cas a 90% cela sauvegarde le fichier ^^
Puis j'ai aussi mis une sauvegarde auto au démarrage ^^
J'ai encore fait mieux avec :

Code : Tout sélectionner

FileCopy("Game\config.xml", "Game\config.xml.save" & @MDAY & "." & @MON & "." & @HOUR & "." & @MIN) ; backup
Modifié en dernier par liberodark le jeu. 19 mai 2016 23:44, modifié 1 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Launcher Personnalisé

#40

Message par orax »

liberodark a écrit :Pour ma part je me suis dit que la restauration serait dans ce genre :

Code : Tout sélectionner

FileCopy("Game\config.xml.bak", "Game\config.xml") ; restore
Ça ne marchera pas si le fichier de destination existe déjà. La solution est dans la page FileCopy de la doc.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre