Launcher Personnalisé

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Launcher Personnalisé

#1

Message par liberodark »

Bonjour,

Je souhaiterait tout d’abord vous remercier pour sur forum vraiment utile !
Mais je suis ici pour un launcher personnalisé !
Je souhaite éditer un ficher .xml si cela est possible.
Pour modifié un pseudo ou encore d'autres options.
PS : je ne suis pas un expert sur Autoit mais je souhaite faire mon launcher avec !

Exemple XML :

Code : Tout sélectionner

 <Language>French</Language>
L'idée serait de pouvoir changer les langues par exemple sans modifié tout le xml mais juste la ligne en question.

Cordialement

02.08.2016 : Version 2.1.0.2
https://github.com/liberodark/Launcher- ... er-SSE.zip

30.07.2016 : Version 2.1.0.0
https://github.com/liberodark/Launcher- ... er-SSE.zip

Sources :
https://github.com/liberodark/Launcher-SSE/
Modifié en dernier par liberodark le mar. 02 août 2016 12:31, modifié 2 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é

#2

Message par orax »

Merci pour tes remerciements !

Microsoft met un objet COM à dispositions des langages de scripts comme AutoIt. La documentation est sur MSDN : https://msdn.microsoft.com/en-us/library/ms764730.aspx
Un exemple tout simple pour charger un document XML :

Code : Tout sélectionner

Local $oXmlDoc = ObjCreate("Msxml2.DOMDocument.6.0")
$oXmlDoc.load("fichier.xml")

If $oXmlDoc.parseError.errorCode <> 0 Then
	$oErr = $oXmlDoc.parseError
	ConsoleWriteError($oErr.reason & @CRLF)
	Exit 1
EndIf
Mais peut-être que StringReplace sera amplement suffisant pour effectuer cette tâche.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#3

Message par liberodark »

Ok merci de la réponse mais je comprend pas très bien.

Voilà j'ai un fichier.XML avec

Code : Tout sélectionner

<Language>French</Language>
dedans.
Comment faire pour que autoit me propose de mettre "English" à la place de "French".
Auriez vous une exemple ?

Cordialement
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é

#4

Message par orax »

Je viens de voir que _ReplaceStringInFile permet de faire ça encore plus facilement.

Code : Tout sélectionner

#include <File.au3>
_ReplaceStringInFile("fichier.xml", "<Language>French</Language>", "<Language>English</Language>")
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#5

Message par liberodark »

Merci beaucoup cela fonctionne super bien !
Maintenant question comment puis je faire des ou French ou English ou Spanish ?
Et puis je le faire avec cette fonction ?
Je pense avoir trouver une idée mais je suis bloqué sur un problème le choix la gestion de mon script car j'ai fait un GUI
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#6

Message par liberodark »

Donc voici mon code :

Code : Tout sélectionner

_AddControlsToPanel($aPanel[2])
GUICtrlCreateList("", 8, 37, 121, 93, -1, 0)
GUICtrlSetData(-1, "English|Arabic|Brazilian|Bulgarian|Croatian|French")
Local $hButton1 = GUICtrlCreateButton("Ok", 200, 33, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Comment faire pour mettre en place ceci :

Code : Tout sélectionner

#include <File.au3>
_ReplaceStringInFile("config.xml", "<Language>French</Language>", "<Language>English</Language>")
Teckos
Niveau 2
Niveau 2
Messages : 18
Enregistré le : mar. 18 sept. 2012 23:32
Status : Hors ligne

Re: Launcher Personnalisé

#7

Message par Teckos »

Pourquoi ne pas tout simplement passer par un combo ?

Code : Tout sélectionner

Global $Combo1 = GUICtrlCreateCombo("", 32, 16, 145, 25, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE))
GUICtrlSetData($Combo1, "English|Arabic|Brazilian|Bulgarian|Croatian|French", "French")
Et remplacer de cette manière par exemple :

Code : Tout sélectionner

_ReplaceStringInFile("config.xml", "<Language>French</Language>", "<Language>" & GUICtrlRead($Combo1) & "</Language>")
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é

#8

Message par blacksoul305 »

Bonjour,

comme Teckos le conseille, je recommande une Combo qui est plus simple à gérer à mon avis. Après, une simple gestion d'événements de GUI devrait suffire pour lancer l'enregistrement des modifications dans le fichier.

Au fait, si tu pouvais rajouter la balise [..] (ou [R] si ton soucis est réglé) dans le titre de ton premier message ! :)

Bonne chance !

EDIT : Ooops, il semblerait que je ne sois plus à jour par rapport aux règles de présentations...
É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é

#9

Message par liberodark »

Bon c'est pas mal du tout sincèrement mais pas encore bon !
Mais j'adore le menu déroulant c'est beaucoup mieux donc je les intégrer convenablement.

Donc je souhaite essayer plus simple !

Voici mon code pour changer de pseudo je me dit que c'est plus simple que les langues !

Code : Tout sélectionner

_AddControlsToPanel($aPanel[1])
GUICtrlCreateLabel("Name", 8, 38, 36, 17)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Local $hInput1 = GUICtrlCreateInput("your name", 56, 35, 121, 21)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Local $hButton1 = GUICtrlCreateButton("Ok", 200, 33, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
AU niveau GUI c'est parfait mais je souhaiterait que ce code

Code : Tout sélectionner

_ReplaceStringInFile("Game\config.xml", "<PersonaName>liberodark</PersonaName>"
Puisse modifié le config.xml

Code : Tout sélectionner

<PersonaName>liberodark</PersonaName>
Je souhaite donc que tout ce que on écrit dans "your name" soit donc mis dans le config.xml pour remplacer "<PersonaName>liberodark</PersonaName>"
Cela est il possible même si "<PersonaName></PersonaName>" na pas de pseudo ?
Et aussi comment mettre ce code

Code : Tout sélectionner

_ReplaceStringInFile("Game\config.xml", "<PersonaName>liberodark</PersonaName>"
dans le bouton Ok
Bon j'imagine que le code va changer car il n'est pas bon mais si vous avez une idée ce serait super

Cordialement
Encore merci pour cette amélioration vu que mon projet est libre je vais tous vous mettre dans les crédits (seulement les pseudo) ce qui ne veulent pas dit le moi.

Voici donc un résultat de votre aide pour les langues mais rien ne s'applique :

Code : Tout sélectionner

GUICtrlCreateLabel("Languages", 8, 38, 36, 17)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Global $Combo1 = GUICtrlCreateCombo("", 56, 35, 121, 21, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE))
GUICtrlSetData($Combo1, "English|Arabic|Brazilian|Bulgarian|Croatian|French", "French")
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Local $hButton1 = GUICtrlCreateButton("Ok", 200, 33, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
_ReplaceStringInFile("config.xml", "<Language>French</Language>", "<Language>" & GUICtrlRead($Combo1) & "</Language>")
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é

#10

Message par orax »

Le but n'est-il pas plutôt de créer un fichier XML, plutôt que de remplacer certaines valeurs ? Car si le fichier XML n'existe pas ou a été supprimé par l'utilisateur, ça ne pourra plus marcher.

Ces deux exemple sont indépendants.
; //// Exemple pour créer test.xml

Local $oXmlDoc = ObjCreate("Msxml2.DOMDocument.6.0")

$oXmlDoc.appendChild($oXmlDoc.createProcessingInstruction("xml", 'version="1.0"'))
$oConfig = $oXmlDoc.appendChild($oXmlDoc.createElement("Config"))

$oConfig.appendChild($oXmlDoc.createElement("PersonaName")).text = "liberodark"
$oConfig.appendChild($oXmlDoc.createElement("Truc")).text = "Machin"

$oXmlDoc.save("test.xml")

; --------------------------------------------------------------------------------

; //// Exemple pour charger test.xml et changer PersonaName

Local $oXmlDoc = ObjCreate("Msxml2.DOMDocument.6.0")

$oXmlDoc.load("test.xml")
If $oXmlDoc.parseError.errorCode <> 0 Then
   $oErr = $oXmlDoc.parseError
   ConsoleWriteError($oErr.reason & @CRLF)
   Exit 1
EndIf
$oXmlDoc.setProperty("SelectionLanguage", "XPath")
$oXmlDoc.selectSingleNode("/Config/PersonaName").text = "héhé !"
$oXmlDoc.save("test.xml")
Bien sûr, on n'est pas obligé d'utiliser Msxml2 comme je l'ai fait. On pourrait aussi le créer directement avec FileWrite/FileWriteLine.

Code : Tout sélectionner

FileWriteLine($hHandleFichier, "<?xml version="1.0"?>")
FileWriteLine($hHandleFichier, "<Config>")
FileWriteLine($hHandleFichier, "<PersonaName>héhé !</PersonaName>")
FileWriteLine($hHandleFichier, "<Truc>Machin</Truc>")
FileWriteLine($hHandleFichier, "</Config>")
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#11

Message par liberodark »

Qui aurait skype je pourrait vous montrer le problème !
C'est que je ne c'est pas comment mettre une fonction sur un bouton !

Voici les langues :
Ici tout est bon il ya un menu déroulant avec les langues et un bouton Ok mais qui n'est pas configuré pour appliqué.

Code : Tout sélectionner

GUICtrlCreateLabel("Languages", 8, 38, 56, 17)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Global $Combo1 = GUICtrlCreateCombo("", 76, 35, 121, 21, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE))
GUICtrlSetData($Combo1, "English|Arabic|Brazilian|Bulgarian|Croatian|French", "French")
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Local $hButton1 = GUICtrlCreateButton("Ok", 200, 33, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Maintenant voici le bout de code je voudrais mettre au bonton Ok :

Code : Tout sélectionner

_ReplaceStringInFile("config.xml", "<Language>French</Language>", "<Language>" & GUICtrlRead($Combo1) & "</Language>")
Mais je ne c'est pas comment faire c'est mon plus gros projet autoit autant dire le premier cela serait plus simple.
Car mes autres script son du pipi de chat à coté de celui ci désolé je ne veut pas être insultant.
PS: ton idée est super mais ne convient pas trop pour le launcher que je veut faire.
(Car le fichier config.xml contrôle trop d'option pas juste la langue et le pseudo mais bien 60 options environ s'il est plus la plus de jeu)
Par contre j'aimerais que quand il ce lance il créer un backup du fichier xml car comme toi je suis soucieux du fait que les joueurs peuvent le supprimer
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é

#12

Message par orax »

Il y a juste besoin de l'inclure dans le Switch GUIGetMsg().
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>

GUICreate("", 300, 200)
GUICtrlCreateLabel("Languages", 8, 38, 56, 17)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Global $Combo1 = GUICtrlCreateCombo("", 76, 35, 121, 21, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE))
GUICtrlSetData($Combo1, "English|Arabic|Brazilian|Bulgarian|Croatian|French", "French")
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Global $hButton1 = GUICtrlCreateButton("Ok", 200, 33, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)

GUISetState()

While 1
   Switch GUIGetMsg()
      Case $GUI_EVENT_CLOSE
         ExitLoop

      Case $hButton1
         MsgBox(0, Default, "Ok")
   EndSwitch
WEnd
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#13

Message par liberodark »

J'ai vu que cela ressemble beaucoup à ce que j'ai sauf que je pense que cela est mal introduit !
Car quand je les mis cela me met votre fenêtre puis ensuite le launcher.
Puis cela n'a aucun effet sur config.xml j'ai rien vu dans le code en question.

Pourriez vous regarder le code :

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.14.2
 Author: liberodark

 Script Function:
	Launcher SSE

#ce ----------------------------------------------------------------------------

#include <GuiConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <File.au3>
#region GLOBAL VARIABLES
Global $iW = 600, $iH = 400, $iT = 52, $iB = 52, $iLeftWidth = 150, $iGap = 10, $hMainGUI
#endregion GLOBAL VARIABLES

_MainGui()

Func _MainGui()
Local $hFooter, $nMsg, $aPos
Local $iLinks = 5
Local $sMainGuiTitle = "Launcher SSE"
Local $sHeader = "Open Source Launcher (v2.0.0)"
Local $sFooter = "2016 © liberodark"
Local $aLink[$iLinks], $aPanel[$iLinks]
$aLink[0] = $iLinks - 1
$aPanel[0] = $iLinks - 1
$hMainGUI = GUICreate($sMainGuiTitle, $iW, $iH, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_TABSTOP))
GUISetIcon("shell32.dll", -58, $hMainGUI)

GUICtrlCreateLabel($sHeader, 48, 8, $iW - 56, 32, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 14, 800, 0, "Arial", 5)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)

GUICtrlCreateIcon("shell32.dll", -131, 8, 8, 32, 32)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("", 0, $iT, $iW, 2, $SS_SUNKEN);separator
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKHEIGHT)
GUICtrlCreateLabel("", $iLeftWidth, $iT + 2, 2, $iH - $iT - $iB - 2, $SS_SUNKEN);separator
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH)
GUICtrlCreateLabel("", 0, $iH - $iB, $iW, 2, $SS_SUNKEN);separator
GUICtrlSetResizing(-1, $GUI_DOCKBOTTOM + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKHEIGHT)

$hFooter = GUICtrlCreateLabel($sFooter, 10, $iH - 34, $iW - 20, 17, BitOR($SS_LEFT, $SS_CENTERIMAGE))
GUICtrlSetTip(-1, "GitHub", "Click to open...")
GUICtrlSetCursor(-1, 0)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)

;add links to the left side
$aLink[1] = _AddNewLink("Pseudo")
$aLink[2] = _AddNewLink("Language", -14)
$aLink[3] = _AddNewLink("Options", -22)
$aLink[4] = _AddNewLink("Credit", -222)

;and the corresponding GUI's
$aPanel[1] = _AddNewPanel("Enter your Pseudo")
$aPanel[2] = _AddNewPanel("Chose your Language")
$aPanel[3] = _AddNewPanel("Options")
$aPanel[4] = _AddNewPanel("Credits")

;add some controls to the panels
_AddControlsToPanel($aPanel[1])
GUICtrlCreateLabel("Name", 8, 38, 36, 17)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Local $hInput1 = GUICtrlCreateInput("your name here", 56, 35, 121, 21)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Local $hButton1 = GUICtrlCreateButton("Ok", 180, 33, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)

_AddControlsToPanel($aPanel[2])
GUICtrlCreateLabel("Languages", 8, 38, 56, 17)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Global $Combo1 = GUICtrlCreateCombo("", 76, 35, 121, 21, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_SIMPLE))
GUICtrlSetData($Combo1, "English|Arabic|Brazilian|Bulgarian|Croatian|French", "French")
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Local $hButton1 = GUICtrlCreateButton("Ok", 200, 33, 75, 25)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)

_AddControlsToPanel($aPanel[3])
GUICtrlCreateGroup("Group1", 8, 35, 129, 90)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Local $aChkBox[4]
For $i = 1 To 3
$aChkBox[$i] = GUICtrlCreateRadio("Some radio " & $i, 16, 56 + ($i - 1) * 20, 113, 17)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Next
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateGroup("", -99, -99, 1, 1)

_AddControlsToPanel($aPanel[4])
GUICtrlCreateEdit("", 10, 37, $iW - $iLeftWidth + 2 - 20 - 5, $iH - $iT - $iB - 40, BitOR($ES_AUTOVSCROLL, $ES_NOHIDESEL, $ES_WANTRETURN, $WS_VSCROLL), $WS_EX_STATICEDGE)
Local $sTestTxt = ""
For $i = 1 To 1
$sTestTxt &= @TAB & "liberodark - Dev" & @CRLF
$sTestTxt &= @TAB & "orax - Helper" & @CRLF
$sTestTxt &= @TAB & "Teckos - Helper" & @CRLF
$sTestTxt &= @TAB & "taietel - GUI Template" & @CRLF
Next
GUICtrlSetData(-1, $sTestTxt)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM)

;set default to Panel1
GUISwitch($aPanel[1])
;show the main GUI
GUISetState(@SW_SHOW, $hMainGUI)

While 1
Sleep(10)
$nMsg = GUIGetMsg(1)
Switch $nMsg[1]
Case $hMainGUI
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_MINIMIZE, $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE
$aPos = WinGetPos($hMainGUI)
$iW = $aPos[2]
$iH = $aPos[3]
For $i = 0 To $aPanel[0]
WinMove($aPanel[$i], "", $iLeftWidth + 2, $iT, $iW - $iLeftWidth + 2, $iH - $iT - $iB - 20)
Next
Case $aLink[1], $aLink[2], $aLink[3], $aLink[4]
For $i = 1 To $aLink[0]
If $nMsg[0] = $aLink[$i] Then
GUISetState(@SW_SHOW, $aPanel[$i])
Else
GUISetState(@SW_HIDE, $aPanel[$i])
EndIf
Next
Case $hFooter
ShellExecute("<a href=https://github.com/liberodark/Launcher-SSE </a>")
EndSwitch
Case $aPanel[2]
Switch $nMsg[0]
Case $hButton1
MsgBox(32, "Test", "You have " & GUICtrlRead($hInput1) & "?")
EndSwitch
Case $aPanel[4]
Switch $nMsg[0]
Case $aChkBox[1], $aChkBox[2], $aChkBox[3]
For $i = 1 To 3
If GUICtrlRead($aChkBox[$i]) = $GUI_CHECKED Then MsgBox(64, "Test", "You checked nr. " & $i & "!")
Next
EndSwitch
EndSwitch
WEnd
EndFunc ;==>_MainGui

Func _AddNewLink($sTxt, $iIcon = -44)
Local $hLink = GUICtrlCreateLabel($sTxt, 36, $iT + $iGap, $iLeftWidth - 46, 17)
GUICtrlSetCursor(-1, 0)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
GUICtrlCreateIcon("shell32.dll", $iIcon, 10, $iT + $iGap, 16, 16)
GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
$iGap += 22
Return $hLink
EndFunc ;==>_AddNewLink

Func _AddNewPanel($sTxt)
Local $gui = GUICreate("", $iW - $iLeftWidth + 2, $iH - $iT - $iB, $iLeftWidth + 2, $iT, $WS_CHILD + $WS_VISIBLE, -1, $hMainGUI)
GUICtrlCreateLabel($sTxt, 10, 10, $iW - $iLeftWidth - 20, 17, $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 9, 800, 4, "Arial", 5)
GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKLEFT + $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
Return $gui
EndFunc ;==>_AddNewPanel

Func _AddControlsToPanel($hPanel)
GUISwitch($hPanel)
EndFunc ;==>_AddControlsToPanel
Voici tout le launcher si il y a des erreurs dite pour que je puis les corriger ^^
J'espère que cela pourra vous aider
Modifié en dernier par liberodark le mer. 18 mai 2016 23:27, modifié 1 fois.
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#14

Message par liberodark »

J'ai remarqué une erreur je crois bien !

il y avait deux bouton 1, j'ai donc mis bouton 1 Pseudo, Bouton 2 Languages.
Cela est il une bonne chose ?
Autre question les Includes sont ils tous nécessaire ?

Code : Tout sélectionner

EndSwitch
Case $aPanel[2]
Switch $nMsg[0]
Case $hButton1
MsgBox(32, "Test", "You have " & GUICtrlRead($hInput1) & "?")
EndSwitch
Case $aPanel[4]
Switch $nMsg[0]
Case $aChkBox[1], $aChkBox[2], $aChkBox[3]
For $i = 1 To 3
If GUICtrlRead($aChkBox[$i]) = $GUI_CHECKED Then MsgBox(64, "Test", "You checked nr. " & $i & "!")
Next
EndSwitch
EndSwitch
WEnd
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é

#15

Message par orax »

Pour l'instant il y a juste besoin de #include <GuiConstants.au3>.

Le code pourrait être indenté pour être plus lisible. Si SciTE4AutoIt (et non SciTE Lite) est installé, alors il suffit de faire CTRL+T.
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
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é

#16

Message par mikell »

liberodark a écrit :le fichier config.xml contrôle trop d'option (...) s'il est plus la plus de jeu
Merci de nous fournir quelques infos précises sur le but de ce launcher, histoire d'être sûr qu'il ne contrevient pas au règlement du forum
(Rappel : s'il s'agit de bidouiller un fichier de configuration dont dépend le fonctionnement d'un jeu, ce n'est pas autorisé)
" 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é

#17

Message par liberodark »

Bonjour,

Mikell je te rassure il ne s'agit ni d'un bot ni de modifier le fonctionnement du jeu simplement Langues et Nom !
Mais il les paramètre du fichier config concerne le port utilisé ou l'adresse ip réseaux être online ou offline pour les lan etc...
Merci orax j'ai aussi indenté le code et corrigé certains includes ^^

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

Re: Launcher Personnalisé

#18

Message par liberodark »

Donc enfin le launcher fonctionne mais cela n’étant que la première étape il reste encore beaucoup de chemin à faire.
Comme par exemple lancer le jeu ce qu'il ne c'est pas encore faire vu qu"il lui manque le bouton etc...

Donc voilà mais il avance je reviens vers vous très vite sur le prochaine obstacle pour l'instant c'est le lancement du jeu qui pose problème vu qui faut un nouveau menu + bouton ou un bouton en bas ce que je ne c'est pas faire et le menu si j'en ajoute un il plante :(
liberodark
Niveau 4
Niveau 4
Messages : 73
Enregistré le : jeu. 20 août 2015 21:33
Status : Hors ligne

Re: Launcher Personnalisé

#19

Message par liberodark »

Voici donc l'erreur : $aLink[5] = _AddNewLink("Launch Game", -223) ^ ERROR
Error : Array variable has incorecte number of subscript or subscript dimension range exceeded

Vous avez une idée ?

Je crois que l'erreur ce trouve ici :

Code : Tout sélectionner

	While 1
		Sleep(10)
		$nMsg = GUIGetMsg(1)
		Switch $nMsg[1]
			Case $hMainGUI
				Switch $nMsg[0]
					Case $GUI_EVENT_CLOSE
						Exit
					Case $GUI_EVENT_MINIMIZE, $GUI_EVENT_MAXIMIZE, $GUI_EVENT_RESTORE
						$aPos = WinGetPos($hMainGUI)
						$iW = $aPos[2]
						$iH = $aPos[3]
						For $i = 0 To $aPanel[0]
							WinMove($aPanel[$i], "", $iLeftWidth + 2, $iT, $iW - $iLeftWidth + 2, $iH - $iT - $iB - 20)
						Next
					Case $aLink[1], $aLink[2], $aLink[3], $aLink[4], $aLink[5]
						For $i = 1 To $aLink[0]
							If $nMsg[0] = $aLink[$i] Then
								GUISetState(@SW_SHOW, $aPanel[$i])
							Else
								GUISetState(@SW_HIDE, $aPanel[$i])
							EndIf
à cause d'une boucle il doit être spécifié que seulement 4 sous menu sont possible alors qu'il m'en faut 5 !
:(
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é

#20

Message par blacksoul305 »

Tu dois changer le 5 en 6 pour cette ligne : Local $iLinks = 5
$aLinks[5] ne fait pas partie de ton tableau pour le moment.
Étudiant en 2ème année de Licence Informatique.
Répondre