Aller à la page... |
AIO-Log, script de connexion à Dofus [windows]
Suivre Fil fermé |
|
Partager
![]() |
Rechercher
![]() |
|
Citation :
J'ai coder ceci rapidement, le but étant de trouver la zone de texte. Code:
$prgChemin = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Ankama\Dofus", "Path") ;lancement de la fenêtre ShellExecute("Dofus.exe","", $prgChemin) WinActivate("Dofus") While WinActivate("Dofus") = 0 SLeep(300) WinActivate("Dofus") WEnd $Dim = WinGetPos("Dofus") ; Regarde les coordonées de la fenêtre If not Bonne nuit ! |
![]() |
|
|
(Je répond en MP, plutôt, car ça fait un gros HS, tout de même.) C'est pas très dur à mettre en place (n'est-ce pas ? ![]() Et voilà, je suis globalement contente de moi pour la version 1_9b, elle est disponible ! Version compilée : DofusLog-v1_9b.exe - 265.72 kB. Version scripte : DofusLog-v1_9b.au3 - 24.18 kB. Code source : Code:
#include <GUIConstants.au3> ;Nécessaire surtout pour le $GUI_EVENT_CLOSE #include <String.au3> ;Pour l'encryptage Global $fichier, $prgChemin, $prgNom, $FenBase, $Label, $CFini, $fin, $Lancer, $Lance = 0, $Multico, $multi = 0, $Modifier, $Nouveau, $Supprimer, $Ajoute, $Retire, $Haut, $Bas, $Boutons, $Options, $LLancer, $LModifier, $LNouveau, $LSupprimer, $Fichiers, $FNouv, $FCharge, $FQuit, $RNouveau, $RModifier, $RCharge, $RSupprime, $Aide, $ATuto, $aLog, $coListe, $CcoListe, $Radio Global $NbLignes = 2 ;Nombre de lignes utilisées par entrée dans le fichier de Log Global $logChemin = @ScriptDir & "\log.txt" Global $compte = 1 Dim $coListe[1] If $CmdLine[0] > 0 Then $logChemin = $CmdLine[1] If $CmdLine[0] > 1 Then $coListe = StringSplit ($CmdLine[2], ",") For $n = 0 To UBound ($coListe) - 2 $coListe[$n] = $coListe[$n+1] Next ReDim $coListe[UBound ($coListe) - 1] $Lance = 1 EndIf Global $Separ = 4 ;Séparateur, hauteur en pixels entre deux lignes Global $Hligne = 13 ;hauteur présumée par ligne (13 pixels de haut, voire 14) Global $Ht = $Separ + 2 * $Hligne Global $msg Dim $aLog[3] Dim $Ccoliste[UBound ($coListe)] $Skin = StringSplit('-1|-1|-1|-1|-1|""|""|-1|-1|-1', "|") For $n = 0 To UBound ($Skin) - 2 $Skin[$n] = $Skin[$n+1] Next ReDim $Skin[UBound ($Skin) - 1] Charge () While 1 $msg = GUIGetMsg () Switch $msg Case 0 And $Lance <> 1 ContinueLoop Case $GUI_EVENT_CLOSE, $FQuit GUIDelete ($fenBase) Exit Case $Radio[1] To $Radio[UBound ($Radio) - 1] $compte = FRadio ($msg, $compte) Case $Lancer, $LLancer, $Lance = 1 Lance () Case $Multico FMultico () Case $Modifier, $LModifier FModifier () Case $Nouveau, $LNouveau FNouveau () Case $Supprimer, $LSupprimer FSupprimer () Case $CFini ;Bouton fermer après la connec $fin = GUICtrlRead ($CFini) Case $Ajoute MAjoute () Case $Retire MRetire () Case $Haut MHaut () Case $Bas MBas () Case $RNouveau RModif () Case $RCharge RCharge () Case $RModifier RModif (1) Case $RSupprime RSuppre () Case $FNouv, $FCharge GUIDelete ($fenBase) Charge (1) Case $ATuto MsgBox(80,@ScriptName,"Vide...") EndSwitch WEnd ;==============================Fonctions totalement créées par Za==================================== Func Charge ($nouv = 0) If Not FileExists ($logChemin) Or $nouv = 1 Then $fichier = FileOpenDialog (@ScriptName & " - Sélectionnez ou créez un fichier contenant vos logs", $logChemin, "Text files (*.txt)|All files (*.*)", 8, "Log.txt") If $fichier = "" Then Exit ;Ok, c'est violent, mais bon.. ^^ TrayTip (@ScriptName, "Enregistrement de la place du Log en cours", 1, 16) _FileWriteToLine2 (@ScriptFullPath, 6,'Global $logChemin = "' & $fichier & '"', 1) TrayTip ("", "", 0) Else $fichier = $logChemin EndIf $existe = _FileReadToArray2 ($fichier, $aLog) $prgChemin = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Ankama\Dofus", "Path") & "\" $prgNom = "Dofus.exe" If Not FileExists ($prgChemin & $prgNom) Then If Not FileExists ($prgChemin & "Dofus_client.exe") Then $prgNom = FileOpenDialog (@ScriptName & " - Sélectionnez votre lanceur jeu Dofus", $prgChemin, "(*.exe; *.html)|Tous (*.*)", 1, "Dofus") Else $prgNom = "Dofus_client.exe" EndIf EndIf If Not $existe Then Modifier (1, $fichier) EndIf _FileReadToArray2 ($fichier, $aLog) Dim $Radio[(UBound ($aLog) + 1) / $NbLignes] Fenetre () EndFunc Func Fenetre () GUIDelete ($fenBase) Local $tFen = ((UBound ($aLog) - 1) / $NbLignes) Local $lFen = (200 + 200 * ($multi = 1)) $FenBase = GUICreate (@ScriptName, $lFen, 19 + 50 + $tFen * $Ht + 30, -1, -1, 0x70000) GUISetBkColor ($Skin[0], $fenBase) GUISetCursor ($Skin[1], $fenBase) GUISetFont ($Skin[2], $Skin[3], $Skin[4], $Skin[5], $fenBase) GUISetIcon ($Skin[6], $Skin[7], $fenBase) GUICtrlSetDefBkColor ($Skin[8], $fenBase) GUICtrlSetDefColor ($Skin[9], $fenBase) $Label = GUICtrlCreateLabel ("Choisissez un compte à Logger :", 1, -2, -1, -1) $Boutons = GUIStartGroup ($FenBase) ;Séparation des groupes, en préparation ! -utile pour la boucle de focus $Lancer = GUICtrlCreateButton ("Lancer !", 150, $Ht / 2 + $Ht / 2 * $tFen , 47, 25) GUICtrlSetResizing ($Lancer, 8 + 768) If (UBound ($aLog)) / $NbLignes > 2 Then $Multico = GUICtrlCreateCheckbox ("Multi", 150, $Hligne + $Ht + $Ht / 2 * $tFen, -1, $Hligne) GUICtrlSetResizing ($Multico, 8 + 768) GUICtrlSetState ($Multico, $multi) EndIf If $multi = 1 And $Lance <> 1 Then $Ajoute = GUICtrlCreateButton ("Ajouter ->", 255, 0) For $compteBis = 0 To UBound ($coListe) - 1 $CcoListe[$compteBis] = GUICtrlCreateCheckbox ($aLog[$coListe[$compteBis]* $NbLignes - 1], 255, 27 + $compteBis * $Ht) Next $Retire = GUICtrlCreateButton ("<- Retirer", 275, 27 + UBound ($coListe) * $Ht) $Haut = GUICtrlCreateButton ("Monte", 205, $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) $Bas = GUICtrlCreateButton ("Baisse", 205, ($Ht - 3) + $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) EndIf $Modifier = GUICtrlCreateButton ("Modifier", 150, 33 + $tFen * $Ht, 47, 25, 0x8000) GUICtrlSetResizing ($Modifier, 8 + 64 + 768) $Nouveau = GUICtrlCreateButton ("Nouveau", 1, 33 + $tFen * $Ht, -1, 25, 0x8000) GUICtrlSetResizing ($Nouveau, 8 + 64 + 768) $Supprimer = GUICTRLCreateButton ("Supprimer", 75, 33 + $tFen * $Ht, -1, 25, 0x8000) GUICtrlSetResizing ($Supprimer, 8 + 64 + 768) $CFini = GUICtrlCreateCheckbox ("Fermer le script après ce compte", 15, $Hligne, -1, 13 ) GUICtrlSetResizing ($CFini, 2 + 32 + 768) GUICtrlSetState ($CFini, $fin) $Fichiers = GUICtrlCreateMenu ("Fichier", -1, 0) $FNouv = GUICtrlCreateMenuItem ("Nouveau", $Fichiers, 0) $FCharge = GUICtrlCreateMenuItem ("Charger", $Fichiers, 1) $FLigneVide = GUICtrlCreateMenuItem ("", $Fichiers, 2) $FQuit = GUICtrlCreateMenuItem ("Quitter", $Fichiers, 3) $Options = GUICtrlCreateMenu ("Options", -1, 1) $OLog = GUICtrlCreateMenu ("Compte", $Options, 0) $LLancer = GUICtrlCreateMenuItem ("Lancer !", $OLog, 0) $LNouveau = GUICtrlCreateMenuItem ("Nouveau", $OLog, 1) $LModifier = GUICtrlCreateMenuItem ("Modifier", $OLog, 2) $LSupprimer = GUICtrlCreateMenuItem ("Supprimer", $OLog, 3) $ORaccourcis = GUICtrlCreateMenu ("Raccourcis", $Options, 1) $RNouveau = GUICtrlCreateMenuItem ("Nouveau", $ORaccourcis, 0) $RCharge = GUICtrlCreateMenuItem ("Charger", $ORaccourcis, 1) $RModifier = GUICtrlCreateMenuItem ("Modifier", $ORaccourcis, 2) $RSupprime = GUICtrlCreateMenuItem ("Supprimer", $ORaccourcis, 3) $OSkin = GUICtrlCreateMenu ("Skins", $Options, 2) $SNouveau = GUICtrlCreateMenuItem ("Nouveau", $OSkin, 0) GUICtrlSetState ($SNouveau, $GUI_DISABLE) $SSauvegarder = GUICtrlCreateMenuItem ("Sauver", $OSkin, 1) GUICtrlSetState ($SSauvegarder, $GUI_DISABLE) $SModifier = GUICtrlCreateMenuItem ("Modifier", $OSkin, 2) GUICtrlSetState ($Smodifier, $GUI_DISABLE) $SCharger = GUICtrlCreateMenuItem ("Charger", $OSkin, 3) GUICtrlSetState ($SCharger, $GUI_DISABLE) $Aide = GUICtrlCreateMenu ("Aide", -1, 3) $ATuto = GUICtrlCreateMenuItem ("Tutoriel", $Aide, 0) GUICtrlSetState ($ATuto, $GUI_DISABLE) $compteBis = 1 While $compteBis < (UBound ($aLog)) / $NbLignes $Radio[$compteBis] = GUICtrlCreateRadio ($aLog[($compteBis) * $NbLignes - 1]& " .", 5, 27 + (($compteBis - 1) * $Ht), 135 - 136, $Ht - 3, 0x2000) GUICtrlSetData ($Radio[$compteBis], $aLog[($compteBis) * $NbLignes - 1]) GUICtrlSetResizing ($Radio[$compteBis], 2 + 32 + 512) $compteBis += 1 WEnd GUICtrlSetState ($Radio[$compte], 1 + 256) GUICtrlSetPos ($Radio[$compte], 15, 30 + ($compte - 1) * $Ht) GUISetState () DesAct () EndFunc Func DesAct ($DesActive = 0) ;Réactive les boutons par défaut If $DesActive = 1 Then GUICtrlSetState ($Lancer, $GUI_DISABLE) GUICtrlSetState ($Modifier, $GUI_DISABLE) GUICtrlSetState ($Nouveau, $GUI_DISABLE) GUICtrlSetState ($Supprimer, $GUI_DISABLE) GUICtrlSetState ($Options, $GUI_DISABLE) GUICtrlSetState ($Fichiers, $GUI_DISABLE) GUICtrlSetState ($Aide, $GUI_DISABLE) Else GUICtrlSetState ($Lancer, $GUI_ENABLE) GUICtrlSetState ($Modifier, $GUI_ENABLE) GUICtrlSetState ($Nouveau, $GUI_ENABLE) GUICtrlSetState ($Supprimer, $GUI_ENABLE) GUICtrlSetState ($Options, $GUI_ENABLE) GUICtrlSetState ($Fichiers, $GUI_ENABLE) GUICtrlSetState ($Aide, $GUI_ENABLE) EndIf If (UBound ($aLog) - 1) / $NbLignes < 2 Then GUICtrlSetState ($Supprimer, $GUI_DISABLE) GUICtrlSetState ($LSupprimer, $GUI_DISABLE) EndIf EndFunc Func FSupprimer () If MsgBox (0x51, @ScriptName & " - Suppression", "Souhaitez-vous vraiment détruire cette entrée ?") = 2 Then Return DesAct (1) $ligne = $compte * $NbLignes + 1 While $ligne < UBound ($aLog) $aLog[$ligne - $NbLignes] = $aLog[$ligne] $ligne += 1 WEnd ReDim $aLog[UBound ($aLog) - $NbLignes] ReDim $Radio[UBound ($Radio) - 1] If $compte > (UBound ($aLog) - 1) / $NbLignes Then $compte -= 1 TrayTip (@ScriptName, "Effacement en cours...", 0, 16) _FileWriteFromArray2 ($fichier, $aLog, 1, UBound ($aLog) - 1) TrayTip ("", "", 0) $multi = 0 Fenetre () EndFunc Func FModifier () DesAct (1) If Modifier ($compte, $fichier) Then Fenetre () Else Desact () EndIf EndFunc Func FNouveau () DesAct (1) ReDim $aLog[UBound ($aLog) + $NbLignes] ReDim $Radio[UBound ($Radio) + 1] If Modifier (((UBound ($aLog) - 1) / $NbLignes) , $fichier) Then Fenetre () Else ReDim $aLog[UBound ($aLog) - $NbLignes] ReDim $Radio[UBound ($Radio) - 1] EndIf DesAct () EndFunc Func Modifier ($compteBis, $fich) $compteBis = $NbLignes * ($compteBis - 1) + 1 Local $FenMod = GUICreate (@ScriptName, 200, $HLigne * 12, -1, -1, -1, 0x00000080) Local $LabelSurnom = GUICtrlCreateLabel ("Veuillez entrer un" & @CRLF & " pseudonyme :", 0, 0) Local $LabelClef = GUICtrlCreateLabel (@CRLF & "Clef de cyptage :", 120, 0) Local $LabelNDC = GUICtrlCreateLabel ("Veuillez entrer le nom du compte Dofus :", 0, $Hligne * 4) Local $LabelMDP = GUICtrlCreateLabel ("Veuillez entrer le mot de pass associé :", 0, $Hligne * 7) Local $InputPseudo = GUICtrlCreateInput ($aLog[$compteBis], 2, $Hligne * 2, 125) Local $InputClef = GUICtrlCreateInput ("", 149, $Hligne * 2, 50) Local $InputNDC = GUICtrlCreateInput ("", 2, $Hligne * 5, 196) Local $InputMDP = GUICtrlCreateInput ("", 2, $Hligne * 8, 196) Local $BValide = GUICtrlCreateButton ("Valider", 2, $Hligne * 10) Local $BAnnule = GUICtrlCreateButton ("Annuler", 100, $Hligne * 10) GUISetState () While 1 $Mmsg = GUIGetMsg () Switch $Mmsg Case 0 ContinueLoop Case $GUI_EVENT_CLOSE GUIDelete ($FenMod) Return 0 Case $BAnnule GUIDelete ($FenMod) Return 0 Case $BValide If MsgBox (0x51, @ScriptName & " - Modifications", "Attention, vous vous apprêtez à" & @CRLF & "modifier définitivement ces données." & @CRLF & "Êtes-vous sûr ?") = 2 Then Return 0 TrayTip (@ScriptName, "Écriture en cours...", 0, 16) If GUICtrlRead ($InputPseudo) <> "" Then $aLog[$compteBis] = GUICtrlRead ($InputPseudo, 0) _FileWriteToLine2 ($fichier, $compteBis, $aLog[$compteBis], 1) If GUICtrlRead ($InputNDC) <> "" and GUICtrlRead ($InputMDP) <> "" Then ;Si le nom de compte ou le mot de pass sont renseignés, modifier en conséquence. Si aucun des deux ne l'est, mais que la ligne est vide -> go² ajouter un simple"{TAB}". If GUICtrlRead ($InputClef) = "" Then $aLog[$compteBis + 1] = GUICtrlRead ($InputNDC) & "{TAB}" & GUICtrlRead ($InputMDP) Else $aLog[$compteBis + 1] = _StringEncrypt (1, GUICtrlRead ($InputNDC), GUICtrlRead ($InputClef)) & "{TAB}" & _StringEncrypt (1, GUICtrlRead ($InputMDP), GUICtrlRead ($InputClef)) EndIf _FileWriteToLine2 ($fichier, $compteBis + 1, $aLog[$compteBis + 1], 1) EndIf EndIf TrayTip ("", "", 0) GUIDelete ($FenMod) Return 1 EndSwitch WEnd EndFunc Func FRadio ($mess, $compteBis) If $mess <> $Radio[$compteBis] Then GUICtrlSetPos ($Radio[$compteBis], 5, 27 + (($compteBis - 1) * $Ht)) While $mess <> $Radio[$compteBis] $compteBis += 1 If $compteBis > (UBound ($Radio) - 1) Then $compteBis = 1 EndIf WEnd GUICtrlSetPos ($Radio[$compteBis], 15, 30 + (($compteBis - 1) * $Ht)) Else If $multi = 1 Then MAjoute () Else FLancer ($compteBis) If $fin = $GUI_CHECKED Then Exit EndIf EndIf Return $compteBis EndFunc Func FMultico () $multi = GUICtrlRead ($Multico) If $coListe[0] = "" Then $coListe[0] = $compte Fenetre () EndFunc Func MAjoute () Local $n For $n = 0 To UBound ($coListe) - 1 If $coListe[$n] = $compte Then ContinueLoop 2 Next ReDim $coListe[UBound ($coListe) + 1] ReDim $CcoListe[UBound ($CcoListe) + 1] $coListe[UBound ($coListe) - 1] = $compte $CcoListe[UBound ($CcoListe) - 1] = GUICtrlCreateCheckbox ($aLog[$coListe[UBound ($CcoListe) - 1]* $NbLignes - 1], 255, 27 + (UBound ($CcoListe) - 1) * $Ht) GUICtrlSetPos ($Retire, 275, 27 + UBound ($coListe) * $Ht) GUICtrlSetPos ($Haut, 205, $Ht / 2 + $Ht * (UBound ($CcoListe) - 1) / 2, 40) GUICtrlSetPos ($Bas, 205, ($Ht - 3) + $Ht / 2 + $Ht * (UBound ($CcoListe) - 1) / 2, 40) EndFunc Func MRetire () Local $n = 0, $q While $n < UBound ($CcoListe) If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED Then $q = $n While $q < UBound ($CcoListe) - 1 $coListe[$q] = $coListe[$q + 1] GUICtrlSetState ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1])) GUICtrlSetData ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1], 1)) $q += 1 WEnd GUICtrlDelete ($CcoListe[UBound ($CcoListe) - 1]) If UBound ($coListe) > 1 Then ReDim $coListe[UBound ($coListe) - 1] ReDim $CcoListe[UBound ($CcoListe) - 1] GUICtrlSetPos ($Retire, 275, 27 + UBound ($coListe) * $Ht) GUICtrlSetPos ($Haut, 205, $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) GUICtrlSetPos ($Bas, 205, ($Ht - 3) + $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) $n -= 1 Else $multi = 0 Fenetre () EndIf EndIf $n += 1 WEnd EndFunc Func MHaut () Local $n = 1, $z, $y While $n < UBound ($CcoListe) If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED Then $z = GUICtrlRead ($CcoListe[$n]) $y = GUICtrlRead ($CcoListe[$n], 1) GUICtrlDelete ($CcoListe[$n]) $CcoListe[$n] = GUICtrlCreateCheckbox (GUICtrlRead ($CcoListe[$n - 1], 1), 255, 27 + $n * $Ht) GUICtrlSetState ($CcoListe[$n], GUICtrlRead ($CcoListe[$n - 1])) GUICtrlDelete ($CcoListe[$n - 1]) $CcoListe[$n - 1] = GUICtrlCreateCheckbox ($y, 255, 27 + ($n - 1) * $Ht) GUICtrlSetState ($CcoListe[$n - 1], $z) $z = $coListe[$n] $coListe[$n] = $coListe[$n - 1] $coListe[$n - 1] = $z EndIf $n = $n + 1 WEnd EndFunc Func MBas () Local $n = UBound ($CcoListe) - 2, $z While $n >= 0 If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED Then $z = GUICtrlRead ($CcoListe[$n]) $y = GUICtrlRead ($CcoListe[$n], 1) GUICtrlDelete ($CcoListe[$n]) $CcoListe[$n] = GUICtrlCreateCheckbox (GUICtrlRead ($CcoListe[$n + 1], 1), 255, 27 + $n * $Ht) GUICtrlSetState ($CcoListe[$n], GUICtrlRead ($CcoListe[$n + 1])) GUICtrlDelete ($CcoListe[$n + 1]) $CcoListe[$n + 1] = GUICtrlCreateCheckbox ($y, 255, 27 + ($n + 1) * $Ht) GUICtrlSetState ($CcoListe[$n + 1], $z) $z = $coListe[$n] $coListe[$n] = $coListe[$n + 1] $coListe[$n + 1] = $z EndIf $n = $n - 1 WEnd EndFunc Func RModif ($mod = 0) Local $n, $r $fenRac = GUICreate (@ScriptName, 170, 4 * $Ht + $Hligne, -1, -1, -1, 0x00000080) GUICtrlCreateLabel ("Sélectionnez le script :", 0, 0, -1, 2 * $Hligne) If $mod = 0 Then $IScript = GUICtrlCreateInput (@ScriptFullPath, 5, $Hligne, 100) $BSParc = GUICtrlCreateButton ("Parcourir", 110, $Hligne, -1, 2 * $Hligne) GUICtrlCreateLabel ("Sélectionnez le log :", 0, $Ht + $Hligne, -1, 2 * $Hligne) $ILog = GUICtrlCreateInput ($logChemin, 5, $Ht + 2 * $Hligne, 100) $BLParc = GUICtrlCreateButton ("Parcourir", 110, $Ht + 2 * $Hligne, -1, 2 * $Hligne) $LComptes = GUICtrlCreateLabel ('Entrez les n° des comptes :', 0, 2 * $HT + 2 * $Hligne, -1, 2 * $Hligne) GUICtrlSetTip ($LComptes, "Entrez le n° des comptes dans la liste," & @CRLF & "séparés par une simple virgule sans espace.") $IComptes = GUICtrlCreateInput ($compte, 5, 2 * $Ht + 3 * $Hligne, 100) $BValide = GUICtrlCreateButton ("Valider", 110, 2 * $Ht + 3 * $Hligne, -1, 2 * $Hligne) Else $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk") If $n = "" Then Return $r = FileGetShortcut ($n) $IScript = GUICtrlCreateInput ($r[0], 5, $Hligne, 100) $BSParc = GUICtrlCreateButton ("Parcourir", 110, $Hligne, -1, 2 * $Hligne) GUICtrlCreateLabel ("Sélectionnez le log :", 0, $Ht + $Hligne, -1, 2 * $Hligne) $ILog = GUICtrlCreateInput (StringMid ($r[2], 3, StringInStr ($r[2], '"', 2, 2) - 3), 5, $Ht + 2 * $Hligne, 100) $BLParc = GUICtrlCreateButton ("Parcourir", 110, $Ht + 2 * $Hligne, -1, 2 * $Hligne) $LComptes = GUICtrlCreateLabel ('Entrez les n° des comptes :', 0, 2 * $HT + 2 * $Hligne, -1, 2 * $Hligne) GUICtrlSetTip ($LComptes, "Entrez le n° des comptes dans la liste," & @CRLF & "séparés par une simple virgule sans espace.") $IComptes = GUICtrlCreateInput (StringMid ($r[2], StringInStr ($r[2], '"', 2, 2) + 2), 5, 2 * $Ht + 3 * $Hligne, 100) $BValide = GUICtrlCreateButton ("Valider", 110, 2 * $Ht + 3 * $Hligne, -1, 2 * $Hligne) EndIf GUISetState () While 1 $RMsg = GUIGetMsg () Switch $RMsg Case 0 ContinueLoop Case $BSParc $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre script :", @ScriptDir, "Scripts (*.au3;*.exe)|Tous (*.*)", 8, @ScriptName) If $n <> "" Then GUICtrlSetData ($IScript, $n) Case $BLParc $n = FileOpenDialog (@ScriptName & " - Sélectionnez le fichier contenant vos logs :", $logChemin, "Textes (*.txt)|Tous (*.*)", 8, "Log.txt") If $n <> "" Then GUICtrlSetData ($ILog, $n) Case $BValide $n = FileOpenDialog (@ScriptName & " - Choissez le nom et répertoire du raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk") If $n = '' Then ContinueCase If StringInStr ($n, ".lnk") = 0 Then $n &= ".lnk" FileCreateShortcut (GUICtrlRead ($IScript), $n, "", ' "' & GUICtrlRead ($ILog) & '" ' & GUICtrlRead ($IComptes)) ContinueCase Case $GUI_EVENT_CLOSE GUIDelete ($fenRac) Return EndSwitch WEnd EndFunc Func RCharge () $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk") If $n = "" Then Return $r = FileGetShortcut ($n) $logChemin = StringMid ($r[2], 3, StringInStr ($r[2], '"', 2, 2) - 3) $coListe = StringSplit (StringMid ($r[2], StringInStr ($r[2], '"', 2, 2) + 2), ",") For $n = 0 To UBound ($coListe) - 2 $coListe[$n] = $coListe[$n+1] Next ReDim $coListe[UBound ($coListe) - 1] $Lance = 1 GUIDelete ($fenBase) Charge () Return EndFunc Func RSuppre () $Racc = FileOpenDialog (@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName) If $Racc <> "" Then FileDelete ($Racc) ;Sans confirmation, violente que je suis. ^^ EndFunc Func Lance () If $multi = 1 Or $Lance = 1 Then For $n = 0 To UBound ($coListe) - 1 If $coListe[$n] <= ((UBound ($aLog) - 1) / $NbLignes) And $coListe[$n] > 0 Then FLancer ($coListe[$n]) Next $Lance = 0 Else FLancer ($compte) EndIf If $fin = $GUI_CHECKED Then Exit EndFunc Func FLancer ($compteBis = $compte) DesAct (1) $compteBis = ($compteBis - 1) * $NbLignes + 1 If StringInStr ($aLog[$compteBis + 1], "{TAB}") = 0 Then Return ;Permet de vérifier que la ligne est bien censée contenir un login/pss cryptés Local $Clef = InputBox (@ScriptName & " - Code du compte " & $aLog[$compteBis], "Veuillez entrer la clef de " & $aLog[$compteBis]& " :", "", "°") If Améliorations par rapport à la 1_9 : -> Meilleure prise en charge de la zone de saisie du nom de compte, il n'est (normalement...) plus possible d'envoyer des identifiants dans une mauvaise fenêtre suite à une fausse manipulation -> Système de raccourcis totalement implanté ! Le fonctionnement n'est pas encore très intuitif, mais c'est une bonne base. - - > Création/modification de raccourcis : vous entrez la position du DofusLog (elle est la bonne par défaut), vous entrez la position du fichier de logs (idem), ainsi que les numéros des comptes de la liste à connecter. Pour en sélectionner plusieurs de suite, il suffit de les écrire à la suite, séparés d'une simple virgule (sans espace !). Il faut 'valider' pour que le raccourcis soit créé dans le répertoire désiré, avec le nom désiré. (Pas d'inquiétude : quel que soit le nom, l'extension raccourcis ".lnk" sera ajoutée de toute manière en cas d'absence.) - - > Chargement d'un raccourcis : Permet de connecter les comptes choisis d'un raccourcis. Pratique pour faire des pré-sélections de teams à logguer, mais aussi si vous avez lancé le DofusLog au-lieu du raccourcis désiré. ^^ - - > Supprimer un raccourcis : Supprimer un raccourcis. (Sis, j'vous jure !) Y'a pas de confirmation avant la suppression, je devrais en rajouter une ? -> Suppression de la bulle d'aide d'accueil de la version bêta 2 : elle ne servait à rien, et ne se fermait pas d'elle-même. -> Meilleure gestion des différentes bulles d'aides, il en manque encore quelques-unes (notamment au niveau des raccourcis et des créations/modifications des entrées des comptes). Bugs et remarques pour les évolutions futures : -> J'ai ciblé le bug quand on supprime un compte de la liste principale avec la multico ouverte : ça sera réglé pour la prochaine fois. Remède : Veuillez éviter de supprimer un compte de la liste principale quand il est aussi présent dans la liste de Multi : enlevez-le de la liste secondaire auparavant. (Aucune influence sur le fonctionnement, sauf une fermeture du script à la réactivation de la Multi.) -> Je n'ai pas encore modifié la possibilité de pouvoir changer un nom de compte OU un mot de pass pour une entrée de compte : idem qu'au-dessus, rendez-vous la prochaine fois. Remède : Veuillez remplir les deux champs si vous en modifiez un. Aucun plantage, sauf que le champs non renseigné sera juste purement et simplement vierge. (Aucune influence sur le script non-plus, il fonctionne très bien avec l'un ou l'autre [ou même les deux ^^'] champs vides.) -> Quelques zones de saisies semblent être "décalées" par rapport à l'affichage : je ne sais pas d'où ça vient, mais ça sera réglé avec les skins (qui seront là à la 1_9c !). Enfin, j'espère que ça réglera ce soucis ! ![]() Hum.. C'est tout pour le moment ! Za. Nan, j'ai remplacé le Lapin par un truc aléatoire : il est toujours là, mais 1 chance sur 5 d'apparaître. Je vous laisse profiter quelques temps de ces magnifiques phrases de remplacement, je les changerai peut-être entre 2 versions. (Ou les incluerai dans le skin, tiens. Bonne idée ça ! ^^) |
![]() |
|
|
Chez moi, les raccourcis marchent. J'ai aussi vu la rubrique skin, inaccessible =(
L'espoir fait vivre (un skin zebre XD) |
![]() |
|
|
Hey, pas trop vite, hein !
![]() La release n'est pas encore disponible (pour vous, huhu. Y'a quand-même un avantage à programmer soi-même ses trucs !), je finis ça dans l'après-midi/soirée. Le problème du "Alt-Tab" un certain nombre de fois, c'est que c'est le bazar si entre 2 fenêtres tu as ouvert un fichier, un dossier, exécuté un programme... Plus précisément, chaque processus (fenêtre, programme, fichier ouvert..) possède un numéro unique+un titre. Et en faisant la simple liste de ces titres, avec une petite commande (WinActivate(Fenêtre)) associée à un raccourcis, c'est finalement plus simple et plus sûr ! Pour réguler les fenêtres en fonction de l'ordre d'initiative, je ne pense pas pouvoir le faire de manière automatique via un script. Comparer les valeurs d'initiative des personnages nécessite d'accéder à cette valeur ! (Ca semble évident, et pourtant..) Or, Ankama ne met pas à disposition ce genre d'informations. En revanche, permettre de réorganiser vos fenêtres/raccourcis vous-mêmes à travers un script, aucun soucis ! Allez, je finis ce que j'ai à faire d'abord. *y retourne* Et puisque Ganjalo, il rox, il a aussi parlé de Taskix, que je ne connaissais pas (Lien vers la discussion.), qui permet de réorganiser ses fenêtres dans la barre des tâches à volonté. Za. |
![]() |
|
|
Je reviens ce soir, bonne journée ! ^^
Bonjour à tous ! Voilà, la version 1_10 en préparation avec son jouli module de skins est (presque) prête ! Par-contre, pour alléger votre attente, je vous propose de voir la version Bêta, qui n'est pas du tout finie. Version Bêta2 : -> Seul l'auto-chargement d'un skin nommé "SkinDB.txt" (SkinDeBase) présent dans le répertoire du script est implémenté -> Il est possible de modifier manuellement le skin, un module à venir permettra de le faire de façon "simple" DofusLog-v1_10 Bêta 2 (24/03/2009) Fichier de skin : SkinDB.txt - 9.76 kB Version script : DofusLog-v1_10Bêta2.au3 - 31.55 kB Version Source : Code:
;Dernières modif' : ;$a = 3, $b=10, Assign("a",Execute("$b")) -> $a = 10 ;Transformer en OnEvent tous les GetMsg. ;des boutons pour afficher/cacher les caractères des mots de pass ;un bouton pour mettre en plein écran la fenêtre Dofus (en préparation) #include <GUIConstants.au3> ;Nécessaire surtout pour le $GUI_EVENT_CLOSE #include <String.au3> ;Pour l'encryptage ;~ #include <File.au3> ;~ #include <Array.au3> Global $fichier, $prgChemin, $prgNom, $FenBase, $Label, $CFini, $fin, $Lancer, $Lance = 0, $Multico, $multi = 0, $Modifier, $Nouveau, $Supprimer, $Ajoute, $Retire, $Haut, $Bas, $Boutons, $Options, $OLog, $LLancer, $LModifier, $LNouveau, $LSupprimer, $Fichiers, $FNouv, $FCharge, $FQuit, $ORaccourcis, $RNouveau, $RModifier, $RCharge, $RSupprime, $OSkin, $SCharger, $SNouveau, $SModifier, $SSauvegarder, $Aide, $ATuto, $aLog, $coListe, $CcoListe, $Radio, $Skin Global $NbLignes = 2 ;Nombre de lignes utilisées par entrée dans le fichier de Log Global $logChemin = @ScriptDir & "\log.txt" Global $compte = 1, $compteBis = 0;, $compteTer = 0 Dim $coListe[1] If $CmdLine[0] > 0 Then $logChemin = $CmdLine[1] If $CmdLine[0] > 1 Then $coListe = StringSplit ($CmdLine[2], ",") For $n = 0 To UBound ($coListe) - 2 $coListe[$n] = $coListe[$n+1] Next ReDim $coListe[UBound ($coListe) - 1] $Lance = 1 $fin = $GUI_CHECKED ;Pas obligatoire, en fait, mais préférable, finalement. EndIf Global $Separ = 4 ;Séparateur, hauteur en pixels entre deux lignes Global $Hligne = 13 ;hauteur présumée par ligne (13 pixels de haut, voire 14) Global $Ht = $Separ + 2 * $Hligne Global $msg Dim $aLog[3] Dim $Ccoliste[UBound ($coListe)] _FileReadToArray2 ("SkinDB.txt", $Skin) Charge () While 1 $msg = GUIGetMsg () Switch $msg Case 0 And $Lance <> 1 ContinueLoop Case $GUI_EVENT_CLOSE, $FQuit GUIDelete ($fenBase) Exit Case $Radio[1] To $Radio[UBound ($Radio) - 1] $compte = FRadio ($msg, $compte) Case $Lancer, $LLancer, $Lance = 1 Lance () Case $Multico FMultico () Case $Modifier, $LModifier FModifier () Case $Nouveau, $LNouveau FNouveau () Case $Supprimer, $LSupprimer FSupprimer () Case $CFini ;Bouton fermer après la connec $fin = GUICtrlRead ($CFini) Case $Ajoute MAjoute () Case $Retire MRetire () Case $Haut MHaut () Case $Bas MBas () Case $RNouveau RModif () Case $RCharge RCharge () Case $RModifier RModif (1) Case $RSupprime RSuppre () Case $FNouv, $FCharge GUIDelete ($fenBase) Charge (1) Case $ATuto MsgBox(80,@ScriptName,"Aucun tutoriel pour le moment." & @CRLF & "N'hésitez pas à réagir sur le forum" & @CRLF& "www.JeuxonLine.info !") EndSwitch WEnd ;==============================Fonctions totalement créées par Za==================================== Func Charge ($nouv = 0) If Not FileExists ($logChemin) Or $nouv = 1 Then TrayTip (@ScriptName, "Veuillez sélectionner un fichier texte.",0) $fichier = FileOpenDialog (@ScriptName & " - Sélectionnez ou créez un fichier contenant vos logs", $logChemin, "Text files (*.txt)|All files (*.*)", 8, "Log.txt") If $fichier = "" Then Exit ;Ok, c'est violent, mais bon.. ^^ TrayTip (@ScriptName, "Enregistrement de la place du Log en cours", 1, 16) _FileWriteToLine2 (@ScriptFullPath, 12,'Global $logChemin = "' & $fichier & '"', 1) TrayTip ("", "", 0) Else $fichier = $logChemin EndIf $existe = _FileReadToArray2 ($fichier, $aLog) ;$prgChemin et $prgNom n'ont rien à faire ici, normalement. Sauf à associer les logs avec une application. $prgChemin = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Ankama\Dofus", "Path") & "\" $prgNom = "Dofus.exe" If Not FileExists ($prgChemin & $prgNom) Then If Not FileExists ($prgChemin & "Dofus_client.exe") Then $prgNom = FileOpenDialog (@ScriptName & " - Sélectionnez votre lanceur de jeu Dofus", $prgChemin, "(*.exe; *.html)|Tous (*.*)", 1, "Dofus") Else $prgNom = "Dofus_client.exe" EndIf EndIf If Not $existe Then Modifier (1, $fichier) EndIf _FileReadToArray2 ($fichier, $aLog) Dim $Radio[(UBound ($aLog) + 1) / $NbLignes] Fenetre () EndFunc Func Fenetre ($GUI = "FenBase") ;String Global $tFen = ((UBound ($aLog) - 1) / $NbLignes) Global $lFen = (200 + 200 * ($multi = 1)) If $GUI = "FenBase" Then GUIDelete ($FenBase) ;Appeler la fonction skin : Skinappel($string) For $l = 1 to UBound ($Skin) - 1 If $Skin[$l] = $GUI Then ExitLoop Next For $g = $l To UBound ($Skin) - 1 ;~ _ArrayDisplay($Skin,$g) If (StringLeft ($Skin[$g], 3) = "Fen") And ($g <> $l) Then ExitLoop If (StringLeft ($Skin[$g], 3) = "Fen") And ($g = $l) Then $t = $Skin[$g] Else $t = StringRight ($Skin[$g], StringLen ($Skin[$g]) - StringInStr ($Skin[$g], " ", 2, -1)) EndIf If Not (StringInStr ($Skin[$g], ":")) And ($Skin[$g] <> "") Then ;~ MsgBox(80,"",$g&"."&$Skin[$g]&"."&Skinappel ($Skin[$g])) Switch $t Case "Multico" If UBound ($aLog) / $NbLignes > 2 Then Assign (StringRight ($Skin[$g], StringLen ($Skin[$g]) - StringInStr ($Skin[$g], " ", 2, -1)), Skinappel ($Skin[$g])) GUICtrlSetResizing ($Multico, 8 + 768) GUICtrlSetState ($Multico, $multi) EndIf Case "Ajoute" ContinueCase Case "Retire" ContinueCase Case "Haut" ContinueCase Case "Bas" ContinueCase Case "ListeMulti" If $multi = 1 And $Lance <> 1 Then ;~ MsgBox(80,"","."&$Skin[$g]&".") If $t = "ListeMulti" Then If $coListe[0] = "" Then $coListe[0] = $compte ;~ _ArrayDisplay($coListe,"$coListe") $compteBis = 0 While $compteBis < UBound ($coListe) ;~ MsgBox(80,"",$aLog[$coListe[$compteBis] * $NbLignes - 1]) $CcoListe[$compteBis] = Skinappel ($Skin[$g]) ;~ $CcoListe[$compteBis] = GUICtrlCreateCheckbox ($aLog[$coListe[$compteBis] * $NbLignes - 1] & "...", 255, 27 + $compteBis * $Ht) $compteBis += 1 WEnd Else Assign ($t, Skinappel ($Skin[$g])) EndIf EndIf Case "Surnoms" $compteBis = 1 While $compteBis < (UBound ($aLog)) / $NbLignes $Radio[$compteBis] = Skinappel ($Skin[$g]) ;~ MsgBox(80,"",$compteBis&", "&27+($compteBis-1)*$Ht&", "&Execute("27+($compteBis-1)*$Ht")) GUICtrlSetData ($Radio[$compteBis], $aLog[$compteBis * $NbLignes - 1]) ;~ GUICtrlSetLimit ($Radio[$compteBis], 12) ;pour limiter la largeur des caractères. (j'ai pas trouvé comment faire.) GUICtrlSetResizing ($Radio[$compteBis], 2 + 32 + 512) $compteBis += 1 WEnd GUICtrlSetState ($Radio[$compte], 1 + 256) GUICtrlSetPos ($Radio[$compte], 15, 30 + ($compte - 1) * $Ht) $compteBis = $compte Case Else ;Dans tous les cas "normaux" Assign ($t, Skinappel ($Skin[$g])) EndSwitch ;~ MsgBox(80,"","$"&$t&"="&Execute("$"&$t)&".") EndIf ;~ TrayTip(@scriptname,$g,0) ;~ Sleep(50) Next GUISetState () If $GUI = "FenBase" Then DesAct () EndFunc Func Skinappel ($String) Local $ligne = 1, $ligneBis Local $param Dim $SkinBis[9] Do $ligne += 1 Until $Skin[$ligne - 1] = $String $marqueur = StringInStr ($Skin[$ligne], " ", 2, 1) ;$Skin[$ligne] épuré : StringRight ($Skin[$ligne], StringLen($Skin[$ligne]) - StringInStr ($Skin[$ligne], " ", 2, -1)) ;Nomparamètre : StringLeft (StringRight ($Skin[$ligne], StringLen($Skin[$ligne]) - StringInStr ($Skin[$ligne], " ", 2, -1)), StringInStr (StringRight ($Skin[$ligne], StringLen($Skin[$ligne]) - StringInStr ($Skin[$ligne], " ", 2, -1)), ":")) ;Paramètre : StringRight (StringRight ($Skin[$ligne], StringLen($Skin[$ligne]) - StringInStr ($Skin[$ligne], " ", 2, -1)), StringLen (StringRight ($Skin[$ligne], StringLen($Skin[$ligne]) - StringInStr ($Skin[$ligne], " ", 2, -1))) - StringInStr (StringRight ($Skin[$ligne], StringLen($Skin[$ligne]) - StringInStr ($Skin[$ligne], " ", 2, -1)), ":")) $ligneBis = $ligne While StringInStr ($Skin[$ligneBis], " ", 2, 1) = $marqueur $param = StringRight (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), StringLen (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1))) - StringInStr (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), ":") - 1) ;~ MsgBox(80,"","."&$param&"."&Execute($param)&".") If (Execute ($param) <> '') Or ($param = '""') Then $param = Execute ($param) Switch StringLeft (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), StringInStr (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), ":")) Case "Type :" $SkinBis[0] = $param ;commande choisie Case "contenu1 :" If $param = "$aLog[$compteBis]" Then $SkinBis[1] = "" Else $SkinBis[1] = $param ;valeur affectée EndIf ;~ Case "contenu2 :" ;~ Case "largeur :" If $SkinBis[0] = "Fenêtre" Then $SkinBis[2] = $param Else $SkinBis[4] = $param EndIf Case "hauteur :" If $SkinBis[0] = "Fenêtre" Then $SkinBis[3] = $param Else $SkinBis[5] = $param EndIf Case "posx :" If $SkinBis[0] = "Fenêtre" Then $SkinBis[4] = $param Else $SkinBis[2] = $param EndIf Case "posy :" If $SkinBis[0] = "Fenêtre" Then $SkinBis[5] = $param Else $SkinBis[3] = $param EndIf Case "style :" If $SkinBis[5] = "" Then If $SkinBis[4] = "" Then $SkinBis[4] = -1 $SkinBis[5] = -1 EndIf $SkinBis[6] = $param Case "étendu :" $SkinBis[7] = $param Case "parenté :" If $SkinBis[0] = "Groupe" Then $SkinBis[1] = $param ElseIf ($SkinBis[0] = "Menu") Or ($SkinBis[0] = "S-Menu") Then $SkinBis[2] = $param Else $SkinBis[8] = $param EndIf Case "Positionnement :" $SkinBis[3] = $param ;~ Case "Menuradio :" ;~ $SkinBis[4] = $param EndSwitch ;~ Traytip("",$ligneBis,0) $ligneBis += 1 WEnd ;~ _ArrayDisplay($SkinBis,"$SkinBis ("&$String&")") GUISetState () Return Skin ($SkinBis) EndFunc Func Skin ($Array) Switch $Array[0] Case "Curfen" Return GUISetCursor ($Array[1], $Array[2], $Array[3]) Case "Fenêtre" Return GUICreate ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Fond-F" Return GUISetBkColor ($Array[1], $Array[2]) Case "Groupe" Return GUIStartGroup ($Array[1]) Case "Ic-F" Return GUISetIcon ($Array[1], $Array[2], $Array[3]) Case "Police-Fen" Return GUISetFont ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) Case "OnEvent" Return GUISetOnEvent ($Array[1], $Array[2], $Array[3]) Case "State" Return GUISetState ($Array[1], $Array[2]) Case "Stylfaen" Return GUISetStyle ($Array[1], $Array[2], $Array[3]) Case "Avi" Return GUICtrlCreateAvi ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7], $Array[8]) Case "Bouton" Return GUICtrlCreateButton ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Calendrier" Return GUICtrlCreateMonthCal ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Checkbox" Return GUICtrlCreateCheckbox ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Combo" Return GUICtrlCreateCombo ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Dat'action" Return GUICtrlCreateDate ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Editeur" Return GUICtrlCreateEdit ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Graphisme" Return GUICtrlCreateGraphic ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) Case "Icône" Return GUICtrlCreateIcon ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7], $Array[8]) Case "Image" Return GUICtrlCreatePic ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Input" Return GUICtrlCreateInput ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Label" Return GUICtrlCreateLabel ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Liste" Return GUICtrlCreateList ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Menu" Return GUICtrlCreateMenu ($Array[1], $Array[2], $Array[3]) Case "MiniMenu" Return GUICtrlCreateContextMenu ($Array[1]) Case "Radio" Return GUICtrlCreateRadio ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "S-Menu" Return GUICtrlCreateMenuItem (String ($Array[1]), $Array[2], $Array[3]);, $Array[4]) Case "Coul" Return GUICtrlSetColor ($Array[1], $Array[2]) Case "Cur" Return GUICtrlSetCursor ($Array[1], $Array[2]) Case "D-Coul" Return GUICtrlSetDefColor ($Array[1], $Array[2]) Case "D-Fond-C" Return GUICtrlSetDefBkColor ($Array[1], $Array[2]) Case "Data" Return GUICtrlSetData ($Array[1], $Array[2]) ;~ Case "État" ;~ Return GUICtrlSetState ($Array[1], $Array[2]) Case "Event" Return GUICtrlSetOnEvent ($Array[1], $Array[2]) Case "Fond-C" Return GUICtrlSetBkColor ($Array[1], $Array[2]) Case "Graphip'tit" Return GUICtrlSetGraphic ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7], $Array[8]) Case "Im-C" Return GUICtrlSetImage ($Array[1], $Array[2], $Array[3], $Array[4]) Case "Police-C" Return GUICtrlSetFont ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) Case "Pos" Return GUICtrlSetPos ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) Case "Resize" Return GUICtrlSetResizing ($Array[1], $Array[2]) Case "Restyle" Return GUICtrlSetStyle ($Array[1], $Array[2], $Array[3]) Case "Titruc" Return GUICtrlSetTip ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) EndSwitch EndFunc Func DesAct ($DesActive = 0) ;Réactive les boutons par défaut If $DesActive = 1 Then GUICtrlSetState ($Lancer, $GUI_DISABLE) GUICtrlSetState ($Modifier, $GUI_DISABLE) GUICtrlSetState ($Nouveau, $GUI_DISABLE) GUICtrlSetState ($Supprimer, $GUI_DISABLE) GUICtrlSetState ($Options, $GUI_DISABLE) GUICtrlSetState ($Fichiers, $GUI_DISABLE) GUICtrlSetState ($Aide, $GUI_DISABLE) Else GUICtrlSetState ($Lancer, $GUI_ENABLE) GUICtrlSetState ($Modifier, $GUI_ENABLE) GUICtrlSetState ($Nouveau, $GUI_ENABLE) GUICtrlSetState ($Supprimer, $GUI_ENABLE) GUICtrlSetState ($Options, $GUI_ENABLE) GUICtrlSetState ($Fichiers, $GUI_ENABLE) GUICtrlSetState ($Aide, $GUI_ENABLE) EndIf ;~ If (UBound ($aLog) - 1) / $NbLignes < 2 Then ;~ GUICtrlSetState ($Supprimer, $GUI_DISABLE) ;~ GUICtrlSetState ($LSupprimer, $GUI_DISABLE) ;~ EndIf ;~ GUICtrlSetState ($CFini, $GUI_ENABLE) EndFunc Func FSupprimer () If MsgBox (0x51, @ScriptName & " - Suppression", "Souhaitez-vous vraiment détruire cette entrée ?") = 2 Then Return DesAct (1) TrayTip (@ScriptName, "Effacement en cours...", 0, 16) $ligne = $compte * $NbLignes + 1 MRetire ($ligne) While $ligne < UBound ($aLog) $aLog[$ligne - $NbLignes] = $aLog[$ligne] $ligne += 1 WEnd ReDim $aLog[UBound ($aLog) - $NbLignes] ReDim $Radio[UBound ($Radio) - 1] If $compte > (UBound ($aLog) - 1) / $NbLignes Then $compte -= 1 _FileWriteFromArray2 ($fichier, $aLog, 1, UBound ($aLog) - 1) TrayTip ("", "", 0) Fenetre () EndFunc Func FModifier () DesAct (1) If Modifier ($compte, $fichier) Then Fenetre () Else Desact () EndIf EndFunc Func FNouveau () DesAct (1) ReDim $aLog[UBound ($aLog) + $NbLignes] ReDim $Radio[UBound ($Radio) + 1] If Modifier (((UBound ($aLog) - 1) / $NbLignes) , $fichier) Then Fenetre () Else ReDim $aLog[UBound ($aLog) - $NbLignes] ReDim $Radio[UBound ($Radio) - 1] EndIf DesAct () EndFunc Func Modifier ($compteMod, $fich) $compteBis = $NbLignes * ($compteMod - 1) + 1 Global $FenMod, $LabelSurnom, $LabelClef, $LabelNDC, $LabelMDP, $InputPseudo, $InputClef, $InputNDC, $InputMDP, $BValide, $BAnnule Fenetre ("FenMod") Local $Encrypt = StringSplit ($aLog[$compteBis + 1], "{TAB}") GUISetState () While 1 $Mmsg = GUIGetMsg () Switch $Mmsg Case 0 ContinueLoop Case $GUI_EVENT_CLOSE GUIDelete ($FenMod) Return 0 Case $BAnnule GUIDelete ($FenMod) Return 0 Case $BValide If MsgBox (0x51, @ScriptName & " - Modifications", "Attention, vous vous apprêtez à" & @CRLF & "modifier définitivement ces données." & @CRLF & "Êtes-vous sûr ?") = 2 Then ExitLoop If GUICtrlRead ($InputPseudo) <> "" Then TrayTip (@ScriptName, "Écriture en cours...", 0, 16) $aLog[$compteBis] = GUICtrlRead ($InputPseudo, 0) _FileWriteToLine2 ($fichier, $compteBis, $aLog[$compteBis], 1) If GUICtrlRead ($InputNDC) <> "" Then If GUICtrlRead ($InputClef) = "" Then $Encrypt[1] = GUICtrlRead ($InputNDC) Else $Encrypt[1] = _StringEncrypt (1, GUICtrlRead ($InputNDC), GUICtrlRead ($InputClef)) EndIf EndIf If GUICtrlRead ($InputMDP) <> "" Then If GUICtrlRead ($InputClef) = "" Then $Encrypt[UBound ($Encrypt) - 1] = GUICtrlRead ($InputMDP) Else $Encrypt[UBound ($Encrypt) - 1] = _StringEncrypt (1, GUICtrlRead ($InputMDP), GUICtrlRead ($InputClef)) EndIf EndIf $Encrypt = $Encrypt[1] & "{TAB}" & $Encrypt[UBound ($Encrypt) - 1] If $Encrypt <> $aLog[$compteBis + 1] Then $aLog[$compteBis + 1] = $Encrypt _FileWriteToLine2 ($fichier, $compteBis + 1, $aLog[$compteBis + 1], 1) EndIf TrayTip ("", "", 0) EndIf GUIDelete ($FenMod) GUIDelete ($FenBase) Return 1 EndSwitch WEnd GUIDelete ($FenMod) EndFunc Func FRadio ($mess, $compteBis) If $mess <> $Radio[$compteBis] Then GUICtrlSetPos ($Radio[$compteBis], 5, 27 + (($compteBis - 1) * $Ht)) While $mess <> $Radio[$compteBis] $compteBis += 1 If $compteBis > (UBound ($Radio) - 1) Then $compteBis = 1 EndIf WEnd GUICtrlSetPos ($Radio[$compteBis], 15, 30 + (($compteBis - 1) * $Ht)) Else If $multi = 1 Then MAjoute () Else FLancer ($compteBis) If $fin = $GUI_CHECKED Then Exit EndIf EndIf Return $compteBis EndFunc Func FMultico () $multi = GUICtrlRead ($Multico) If $coListe[0] = "" Then $coListe[0] = $compte Fenetre () EndFunc Func MAjoute () Local $n For $n = 0 To UBound ($coListe) - 1 If $coListe[$n] = $compte Then ContinueLoop 2 Next ReDim $coListe[UBound ($coListe) + 1] ReDim $CcoListe[UBound ($CcoListe) + 1] $coListe[UBound ($coListe) - 1] = $compte $CcoListe[UBound ($CcoListe) - 1] = GUICtrlCreateCheckbox ($aLog[$coListe[UBound ($CcoListe) - 1]* $NbLignes - 1], 255, 27 + (UBound ($CcoListe) - 1) * $Ht) GUICtrlSetPos ($Retire, 275, 27 + UBound ($coListe) * $Ht) GUICtrlSetPos ($Haut, 205, $Ht / 2 + $Ht * (UBound ($CcoListe) - 1) / 2, 40) GUICtrlSetPos ($Bas, 205, ($Ht - 3) + $Ht / 2 + $Ht * (UBound ($CcoListe) - 1) / 2, 40) EndFunc Func MRetire ($suppr = -1) Local $n = 0, $q While $n < UBound ($CcoListe) If $suppr = -1 Then If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED And $suppr = -1 Then $q = $n While $q < UBound ($CcoListe) - 1 $coListe[$q] = $coListe[$q + 1] GUICtrlSetState ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1])) GUICtrlSetData ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1], 1)) $q += 1 WEnd GUICtrlDelete ($CcoListe[UBound ($CcoListe) - 1]) If UBound ($coListe) > 1 Then ReDim $coListe[UBound ($coListe) - 1] ReDim $CcoListe[UBound ($CcoListe) - 1] GUICtrlSetPos ($Retire, 275, 27 + UBound ($coListe) * $Ht) GUICtrlSetPos ($Haut, 205, $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) GUICtrlSetPos ($Bas, 205, ($Ht - 3) + $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) $n -= 1 Else $coListe[0] = "" $multi = 0 Fenetre () EndIf EndIf Else If GUICtrlRead ($CcoListe[$n], 1) = $aLog[$suppr - $NbLignes] Then $q = $n While $q < UBound ($CcoListe) - 1 $coListe[$q] = $coListe[$q + 1] GUICtrlSetState ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1])) GUICtrlSetData ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1], 1)) $q += 1 WEnd GUICtrlDelete ($CcoListe[UBound ($CcoListe) - 1]) If UBound ($coListe) > 1 Then ReDim $coListe[UBound ($coListe) - 1] ReDim $CcoListe[UBound ($CcoListe) - 1] GUICtrlSetPos ($Retire, 275, 27 + UBound ($coListe) * $Ht) GUICtrlSetPos ($Haut, 205, $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) GUICtrlSetPos ($Bas, 205, ($Ht - 3) + $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) $n -= 1 Else $coListe[0] = "" $multi = 0 Fenetre () EndIf EndIf EndIf $n += 1 WEnd EndFunc Func MHaut () Local $n = 1, $z, $y While $n < UBound ($CcoListe) If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED Then $z = GUICtrlRead ($CcoListe[$n]) $y = GUICtrlRead ($CcoListe[$n], 1) GUICtrlDelete ($CcoListe[$n]) $CcoListe[$n] = GUICtrlCreateCheckbox (GUICtrlRead ($CcoListe[$n - 1], 1), 255, 27 + $n * $Ht) GUICtrlSetState ($CcoListe[$n], GUICtrlRead ($CcoListe[$n - 1])) GUICtrlDelete ($CcoListe[$n - 1]) $CcoListe[$n - 1] = GUICtrlCreateCheckbox ($y, 255, 27 + ($n - 1) * $Ht) GUICtrlSetState ($CcoListe[$n - 1], $z) $z = $coListe[$n] $coListe[$n] = $coListe[$n - 1] $coListe[$n - 1] = $z EndIf $n = $n + 1 WEnd EndFunc Func MBas () Local $n = UBound ($CcoListe) - 2, $z While $n >= 0 If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED Then $z = GUICtrlRead ($CcoListe[$n]) $y = GUICtrlRead ($CcoListe[$n], 1) GUICtrlDelete ($CcoListe[$n]) $CcoListe[$n] = GUICtrlCreateCheckbox (GUICtrlRead ($CcoListe[$n + 1], 1), 255, 27 + $n * $Ht) GUICtrlSetState ($CcoListe[$n], GUICtrlRead ($CcoListe[$n + 1])) GUICtrlDelete ($CcoListe[$n + 1]) $CcoListe[$n + 1] = GUICtrlCreateCheckbox ($y, 255, 27 + ($n + 1) * $Ht) GUICtrlSetState ($CcoListe[$n + 1], $z) $z = $coListe[$n] $coListe[$n] = $coListe[$n + 1] $coListe[$n + 1] = $z EndIf $n = $n - 1 WEnd EndFunc Func RModif ($mod = 0) Local $n, $r Global $fenRac, $LabelSansNom, $modRac = $mod, $IScript, $BSParc, $LabelSansNom2, $ILog, $BLParc, $LComptes, $LabelSansNom3, $IComptes, $BValide, $BAnnule Fenetre ("FenRac") #comments-start ;Il manque à travailler $mod = 0 / <> 0 $fenRac = GUICreate (@ScriptName, 170, 4 * $Ht + $Hligne) $LabelSansNom = GUICtrlCreateLabel ("Sélectionnez le script :", 0, 0);, -1, 2 * $Hligne) ;Trouver un nom à ce label.. Ca fait tâche, là ^^' If $mod = 0 Then $IScript = GUICtrlCreateInput (@ScriptFullPath, 5, $Hligne, 100);, -1, 2 * $Hligne) $BSParc = GUICtrlCreateButton ("Parcourir", 110, $Hligne);, -1, 2 * $Hligne) $LabelSansNom2 = GUICtrlCreateLabel ("Sélectionnez le log :", 0, $Ht + $Hligne);, -1, 2 * $Hligne);Idem que plus haut $ILog = GUICtrlCreateInput ($logChemin, 5, $Ht + 2 * $Hligne, 100);, -1, 2 * $Hligne) $BLParc = GUICtrlCreateButton ("Parcourir", 110, $Ht + 2 * $Hligne);, -1, 2 * $Hligne) $LComptes = GUICtrlCreateLabel ('Entrez les n° des comptes :', 0, 2 * $HT + 2 * $Hligne);, -1, 2 * $Hligne) $LabelSansNom3 = GUICtrlSetTip ($LComptes, "Entrez le n° des comptes dans la liste," & @CRLF & "séparés par une simple virgule sans espace.") ;Toujours à trouver un nom $IComptes = GUICtrlCreateInput ($compte, 5, 2 * $Ht + 3 * $Hligne, 100);, -1, 2 * $Hligne) $BValide = GUICtrlCreateButton ("Valider", 110, 2 * $Ht + 3 * $Hligne);, -1, 2 * $Hligne) Else $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk") If $n = "" Then Return $r = FileGetShortcut ($n) $IScript = GUICtrlCreateInput ($r[0], 5, $Hligne, 100);, -1, 2 * $Hligne) $BSParc = GUICtrlCreateButton ("Parcourir", 110, $Hligne);, -1, 2 * $Hligne) GUICtrlCreateLabel ("Sélectionnez le log :", 0, $Ht + $Hligne);, -1, 2 * $Hligne) $ILog = GUICtrlCreateInput (StringMid ($r[2], 3, StringInStr ($r[2], '"', 2, 2) - 3), 5, $Ht + 2 * $Hligne, 100);, -1, 2 * $Hligne) $BLParc = GUICtrlCreateButton ("Parcourir", 110, $Ht + 2 * $Hligne);, -1, 2 * $Hligne) $LComptes = GUICtrlCreateLabel ('Entrez les n° des comptes :', 0, 2 * $HT + 2 * $Hligne);, -1, 2 * $Hligne) GUICtrlSetTip ($LComptes, "Entrez le n° des comptes dans la liste," & @CRLF & "séparés par une simple virgule sans espace.") $IComptes = GUICtrlCreateInput (StringMid ($r[2], StringInStr ($r[2], '"', 2, 2) + 2), 5, 2 * $Ht + 3 * $Hligne, 100);, -1, 2 * $Hligne) $BValide = GUICtrlCreateButton ("Valider", 110, 2 * $Ht + 3 * $Hligne);, -1, 2 * $Hligne) EndIf GUISetState () #comments-end While 1 $RMsg = GUIGetMsg () Switch $RMsg Case 0 ContinueLoop Case $BSParc $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre script :", @ScriptDir, "Scripts (*.au3;*.exe)|Tous (*.*)", 8, @ScriptName) If $n <> "" Then GUICtrlSetData ($IScript, $n) Case $BLParc $n = FileOpenDialog (@ScriptName & " - Sélectionnez le fichier contenant vos logs :", $logChemin, "Textes (*.txt)|Tous (*.*)", 8, "Log.txt") If $n <> "" Then GUICtrlSetData ($ILog, $n) Case $BValide $n = FileOpenDialog (@ScriptName & " - Choissez le nom et répertoire du raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk") If $n = '' Then ContinueLoop If StringInStr ($n, ".lnk") = 0 Then $n &= ".lnk" FileCreateShortcut (GUICtrlRead ($IScript), $n, "", ' "' & GUICtrlRead ($ILog) & '" ' & GUICtrlRead ($IComptes)) ContinueCase Case $BAnnule ContinueCase Case $GUI_EVENT_CLOSE GUIDelete ($fenRac) Return EndSwitch WEnd EndFunc Func RCharge () $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk") If $n = "" Then Return $r = FileGetShortcut ($n) $logChemin = StringMid ($r[2], 3, StringInStr ($r[2], '"', 2, 2) - 3) $coListe = StringSplit (StringMid ($r[2], StringInStr ($r[2], '"', 2, 2) + 2), ",") For $n = 0 To UBound ($coListe) - 2 $coListe[$n] = $coListe[$n+1] Next ReDim $coListe[UBound ($coListe) - 1] $Lance = 1 GUIDelete ($fenBase) Charge () Return EndFunc Func RSuppre () $Racc = FileOpenDialog (@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName) If $Racc <> "" Then FileDelete ($Racc) EndFunc Func Lance () If $multi = 1 Or $Lance = 1 Then For $n = 0 To UBound ($coListe) - 1 If $coListe[$n] <= ((UBound ($aLog) - 1) / $NbLignes) And $coListe[$n] > 0 Then FLancer ($coListe[$n]) Next $Lance = 0 Else FLancer ($compte) EndIf If $fin = $GUI_CHECKED Then Exit EndFunc Func FLancer ($compteBis = $compte) DesAct (1) $compteBis = ($compteBis - 1) * $NbLignes + 1 If StringInStr ($aLog[$compteBis + 1], "{TAB}") = 0 Then Return ;vérif alakon, à faire pour la prochaine version ^^ Local $Clef = InputBox (@ScriptName & " - Code du compte " & $aLog[$compteBis], "Veuillez entrer la clef de " & $aLog[$compteBis]& " :", "", "°") If Vous remarquerez le retour des commentaires, c'est normal ! Et le source du fichier texte (bien que disponible plus haut) : Code:
fenBase Type : Fenêtre contenu1 : @ScriptName largeur : $lFen hauteur : 19+50+$tFen*$Ht+30 posx : -1 posy : -1 style : 0x70000 Fichiers Type : Menu contenu1 : "Fichier" parenté : -1 Positionnement : 0 FNouv Type : S-Menu contenu1 : "Nouveau" parenté : $Fichiers Positionnement : 0 FCharge Type : S-Menu contenu1 : "Charger" parenté : $Fichiers Positionnement : 1 FLigneVide Type : S-Menu contenu1 : "" parenté : $Fichiers Positionnement : 2 FQuit Type : S-Menu contenu1 : "Quitter" parenté : $Fichiers Positionnement : 3 Options Type : Menu contenu1 : "Options" parenté : -1 Positionnement : 1 OLog Type : Menu contenu1 : "Compte" parenté : $Options Positionnement : 0 LLancer Type : S-Menu contenu1 : "Lancer !" parenté : $OLog Positionnement : 0 LNouveau Type : S-Menu contenu1 : "Nouveau" parenté : $OLog Positionnement : 1 LModifier Type : S-Menu contenu1 : "Modifier" parenté : $OLog Positionnement : 2 LSupprimer Type : S-Menu contenu1 : "Supprimer" parenté : $OLog Positionnement : 3 ORaccourcis Type : Menu contenu1 : "Raccourcis" parenté : $Options Positionnement : 1 RNouveau Type : S-Menu contenu1 : "Nouveau" parenté : $ORaccourcis Positionnement : 0 RCharge Type : S-Menu contenu1 : "Charger" parenté : $ORaccourcis Positionnement : 1 RModifier Type : S-Menu contenu1 : "Modifier" parenté : $ORaccourcis Positionnement : 2 RSupprime Type : S-Menu contenu1 : "Supprimer" parenté : $ORaccourcis Positionnement : 3 :OSkin Type : Menu contenu1 : "Skins" parenté : $Options Positionnement : 2 SNouveau Type : S-Menu contenu1 : "Nouveau" parenté : $OSkin Positionnement : 0 SSauvegarder Type : S-Menu contenu1 : "Sauver" parenté : $OSkin Positionnement : 1 SModifier Type : S-Menu contenu1 : "Modifier" parenté : $OSkin Positionnement : 2 SCharger Type : S-Menu contenu1 : "Charger" parenté : $OSkin Positionnement : 3 Aide Type : Menu contenu1 : "Aide" parenté : -1 Positionnement : 3 ATuto Type : S-Menu contenu1 : "Tutoriel" parenté : $Aide Positionnement : 0 Label Type : Label contenu1 : "Choisissez un compte à Logger :" posx : 1 posy : -2 largeur : -1 hauteur : -1 style : -1 étendu : 0 Boutons Type : Groupe parenté : $fenBase Lancer Type : Bouton contenu1 : "Lancer !" posx : 150 posy : $Ht/2+$Ht/2*$tFen largeur : 47 hauteur : 25 Multico Type : Checkbox contenu1 : "Multi" posx : 150 posy : $Hligne+$Ht+$Ht/2*$tFen largeur : -1 hauteur : $Hligne Resize : 8+768 État : $multi Modifier Type : Bouton contenu1 : "Modifier" posx : 150 posy : 33+$tFen*$Ht largeur : 47 hauteur : 25 style : 0x8000 Resize : 8+64+768 Nouveau Type : Bouton contenu1 : "Nouveau" posx : 1 posy : 33+$tFen*$Ht largeur : -1 hauteur : 25 style : 0x8000 Resize : 8+64+768 Supprimer Type : Bouton contenu1 : "Supprimer" posx : 75 posy : 33+$tFen*$Ht largeur : -1 hauteur : 25 style : 0x8000 Resize : 8+64+768 CFini Type : Checkbox contenu1 : "Fermer le script après ce compte" posx : 15 posy : $Hligne largeur : -1 hauteur : 13 Resize : 2+32+768 État : $fin Ajoute Type : Bouton contenu1 : "Ajouter ->" posx : 275 posy : 0 largeur : -1 hauteur : -1 Retire Type : Bouton contenu1 : "<- Retirer" posx : 275 posy : 27+Ubound($coListe)*$Ht largeur : -1 hauteur : -1 Haut Type : Bouton contenu1 : "Monte" posx : 205 posy : $Ht+$Ht*(UBound($CcoListe)-1)/2 largeur : 40 hauteur : -1 Bas Type : Bouton contenu1 : "Baisse" posx : 205 posy : ($Ht-3)+$Ht+$Ht*(UBound($CcoListe)-1)/2 largeur : 40 hauteur : -1 Surnoms Type : Radio contenu1 : $aLog[$compteBis*$NbLignes-1]&" ." posx : 5 posy : 27+($compteBis-1)*$Ht largeur : 135 hauteur : $Ht-3 style : 0x2000 Data : $aLog[$compteBis*$NbLignes-1] Resize : 2+32+512 ListeMulti Type : Checkbox contenu1 : $aLog[$coListe[$compteBis] * $NbLignes - 1] posx : 255 posy : 27+$compteBis * $Ht FenMod Type : Fenêtre contenu1 : @ScriptName & " - ajouter/modifier" largeur : 200 hauteur : $HLigne*12 posx : -1 posy : -1 style : -1 étendu : -1 Parenté : $fenBase LabelSurnom Type : Label contenu1 : "Veuillez entrer un" & @CRLF & " pseudonyme :" posx : 1 posy : 2 largeur : 100 hauteur : -1 style : -1 étendu : -1 LabelClef Type : Label contenu1 : @CRLF&"Clef de cryptage :" posx : 120 posy : 0 largeur : -1 hauteur : -1 style : -1 étendu : -1 LabelNDC Type : Label contenu1 : "Veuillez entrer le nom de compte Dofus :" posx : 0 posy : $HLigne*4 largeur : -1 hauteur : -1 style : -1 étendu : -1 LabelMDP Type : Label contenu1 : "Veuillez entrer le mot de pass associé :" posx : 0 posy : $HLigne*7 largeur : -1 hauteur : -1 style : -1 étendu : -1 InputPseudo Type : Input contenu1 : $aLog[$compteBis] posx : 2 posy : $Hligne*2 largeur : 125 hauteur : -1 style : -1 étendu : -1 InputClef Type : Input contenu1 : "" posx : 149 posy : $Hligne*2 largeur : 50 hauteur : -1 style : -1 étendu : -1 InputNDC Type : Input contenu1 : "" posx : 2 posy : $Hligne*5 largeur : 196 hauteur : -1 style : -1 étendu : -1 InputMDP Type : Input contenu1 : "" posx : 2 posy : $Hligne*8 largeur : 196 hauteur : -1 style : -1 étendu : -1 BValide Type : Bouton contenu1 : "Valider" posx : 2 posy : $Hligne*10 largeur : -1 hauteur : -1 style : -1 étendu : -1 BAnnule Type : Bouton contenu1 : "Annuler" posx : 100 posy : $Hligne*10 largeur : -1 hauteur : -1 style : -1 étendu : -1 FenRac Type : Fenêtre contenu1 : @ScriptName largeur : 170 hauteur : 5*$Ht+$Hligne style : -1 étendu : -1 parenté : $fenBase LabelSansNom Type : Label contenu1 : "Sélectionnez le script :" posx : 0 posy : 0 largeur : -1 hauteur : -1 style : -1 étendu : -1 IScript Type : Input contenu1 : @ScriptFullPath contenu2 : $r[0] posx : 5 posy : $Hligne largeur : 100 hauteur : -1 style : -1 étendu : -1 BSParc Type : Bouton contenu1 : "Parcourir" posx : 110 posy : $Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 LabelSansNom2 Type : Label contenu1 : "Sélectionnez le log :" posx : 0 posy : $Ht+$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 ILog Type : Input contenu1 : $logChemin contenu2 : StringMid($r[2],3,StringInStr($r[2],'"',2,2)-3) posx : 5 posy : $Ht+2*$Hligne largeur : 100 hauteur : -1 style : -1 étendu : -1 BLParc Type : Bouton contenu1 : "Parcourir" posx : 110 posy : $Ht+2*$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 LabelSansNom3 Type : Label contenu1 : "Entrez les n° des comptes :" posx : 0 posy : 2*$Ht+2*$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 IComptes Type : Input contenu1 : $compte contenu2 : StringMid($r[2],StringInStr($r[2],'"',2,2)+2) posx : 5 posy : 2*$Ht+3*$Hligne largeur : 100 hauteur : -1 style : -1 étendu : -1 BValide Type : Bouton contenu1 : "Valider" ;posx : 0 posy : 2*$Ht+3*$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 BAnnule Type : Bouton contenu1 : "Annuler" ;posx : 0 posy : 2*$Ht+3*$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 MessageFlood Type : 5 contenu1 : "(\__/)" & @CRLF & "( ' . ' )" & @CRLF & '(")_(")' contenu2 : @CRLF & "Vous pouvez aussi aller jouer dehors," & @CRLF & "avec les papillons, les fleurs et les oiseaux." contenu3 : "" contenu4 : @CRLF & "Ou patientez 2 secondes," & @CRLF & "que la fenêtre se ferme d'elle-même." contenu5 : @CRLF & "La Vie est comme cette boîte de dialogue :" & @CRLF & "C'est quand elle se ferme qu'on arrive à l'essentiel." Fenêtre : Type : Fenêtre contenu1 : contenux : largeur : hauteur : posx : posy : style : étendu : parenté : Contrôle : Type : contenu1 : contenux : posx : -1 posy : -1 largeur : -1 hauteur : -1 style : -1 étendu : -1 Data : Resize : État : Menu : Type : contenu1 : contenux : parenté : Positionnement : État : Flood : Type : Nombre de messages contenu1 : contenux : Global : Type : $SkinBase[0] Curfen, Fenêtre, Fond-F, Ic-F, Police-Fen, OnEvent, State, Stylfaen Avi, Bouton, Calendrier, Checkbox, Combo, Dat'action, Editeur, Graphisme, Groupe, Icône, Image, Input, Label, Liste, Menu, MiniMenu, Radio, S-Menu Coul, D-Coul, D-Fond-C, Data, État, Event, Fond-C, Graphip'tit, Im-C, Police-C, Pos, Resize, Restyle, Titruc Nombre déterminant de messages floodesques (cas unique) -> Rand (0 à Nombre-1, 1) contenu1 : Lié à conditions $SkinBase[1] contenu2 : Lié à conditions.. etc $SkinBase[1] (aussi) posx, posy, largeur, hauteur : Chiffres $SkinBase[2 à 5] style, étendu : 0xChiffre $SkinBase[6 et 7] parenté : Chiffre/Nom de variable $SkinBase[8] ou $SkinBase[3] pour un élément de menu Positionnement : Chiffre $SkinBase[4] spécifique aux menus Prochaine chose à faire, c'est rajouter la possibilité de créer/modifier un skin. ![]() Avancement entre la 1_9b et la 1_10Bêta2 : -> Correction du bug graphique de suppression d'une entrée de la liste principale présente dans la liste de multi -> Possibilité de modifier un nom de compte et/ou un mot de pass associés à un surnom (anciennement, il fallait saisir les deux champs pour que la modification soit prise en compte) -> Module de script presque totalement implanté, modification/création à faire. (+ quelques options graphiques manquantes pour l'instant.) Voilà, à bientôt pour la nouvelle version ! ^^ Za. |
![]() |
|
|
|
![]() |
|
|
Les raccourcis ça avance?
|
![]() |
|
|
Bonjour ZA, serai ce possible de réecrire une ligne pour qu'au lieu de lancer le client Dofus habituel, l'on puisse choisir l'exellente idée d'herazade présente sur ce topic ?
J'ai fait des essais, j'y arrive pas. |
![]() |
|
|
Bonjour bonjour, vous l'attendiez (ou pas, depuis le temps
![]() Je vous l'avais promise, j'ai mit du temps à la développer, mais j'ai réussit à faire ce que je souhaitais : une apparence par un fichier externe contenant toutes les informations de skin, et qui n'a aucune interaction avec le script. (Donc, on ne peut pas modifier le SkinDB.txt pour faire nawak !) Concrètement, ça change quoi ? -> Le script est très allégé côté programmation, car il ne contient plus que les fonctions utiles -> Le fichier de skin est interactif, donc vous pouvez le modifier à votre guise, tout est accepté. (Vi, tout ! changer les couleurs, les polices, la taille des fenêtres, ajouter des images...) (Foule en délire : )Mais.. Ca roxe ! Pas encore tout à fait (d'où le nom de "bêta" qui traîne), il me reste à faire une petite fonction pour que ça soit facile à prendre en main. Une apparence graphique, quand on clique sur un bouton, y'a toutes ses infos qui s'affichent, plus qu'à changer ce qu'on veut. (Et à remettre à jour en temps réel le skin, aussi. Pour le moment, il faut relancer le script pour voir les modifications à l'oeuvre.) Hey, t'as tout changé ton code ! T'as sûrement planqué un Keylog dedans. Non, c'est une des choses qui me tient à coeur, c'est le respect de la sécurité. Le code en lui-même n'a fait que se simplifier. Chaque bouton cliqué lance maintenant une fonction (vous pouvez voir la correspondance bouton -> fonction dans le fichier de skin) totalement sûre (aucun paramètre ne peut être transmit à une fonction depuis un bouton). J'ai aussi divisé par 11 (!) la taille de la fonction principale, qui passe de 44 lignes (version 1_9b) à 4 lignes (version 1_10Bêta4b). Pourquoi ce nom ? Et d'ailleurs, pourquoi "bêta" ? La version est encore en bêta, car il reste quelques options à modifier. Notamment, la fermeture d'une fenêtre de type "Pop-Up" (modification d'un compte, ou nouveau raccourcis) ferme aussi la fenêtre principale. Et je suis passée de la 1_10Bêta 2 à la bêta 4 pour vous, vu que je n'étais pas satisfaite de la 3, je l'ai refaite (donc, passée à 4). Ensuite, j'ai modifié un truc de trop, je n'arrivais plus à la faire fonctionner, donc j'ai re-fait la bêta 4 en mieux, d'où le nom de v1_10Bêta4bis. Ce que vous attendez tous (attention, à partir de maintenant, il faut récupérer le script et le skin, sous peine de ne rien voir s'afficher), Version du script compilée : DofusLog-v1_10Bêta4b.exe - 305.44 kB Version du script scriptée : DofusLog-v1_10Bêta4b.au3 - 29.58 kB Version du script source : Code:
#include <GUIConstants.au3> ;Nécessaire surtout pour le $GUI_EVENT_CLOSE #include <String.au3> ;Pour l'encryptage #include <Array.au3> AutoItSetOption ("GUIOnEventMode", 1) Global $fichier, $prgChemin, $prgNom, $FenBase, $Label, $CFini, $fin, $Lancer, $Lance = 0, $Multico, $multi = 0, $Modifier, $Nouveau, $Supprimer, $Ajoute, $Retire, $Haut, $Bas, $Boutons, $Options, $OLog, $LLancer, $LModifier, $LNouveau, $LSupprimer, $Fichiers, $FNouv, $FCharge, $FQuit, $ORaccourcis, $RNouveau, $RModifier, $RCharge, $RSupprime, $OSkin, $SCharger, $SNouveau, $SModifier, $SSauvegarder, $Aide, $ATuto, $aLog, $coListe, $CcoListe, $Radio, $Skin, $suppr = -1 Global $NbLignes = 2 ;Nombre de lignes utilisées par entrée dans le fichier de Log Global $logChemin = @ScriptDir & "\log.txt" Global $compte = 1, $compteBis Dim $coListe[1] If $CmdLine[0] > 0 Then $logChemin = $CmdLine[1] If $CmdLine[0] > 1 Then $coListe = StringSplit ($CmdLine[2], ",") For $n = 0 To UBound ($coListe) - 2 $coListe[$n] = $coListe[$n+1] Next ReDim $coListe[UBound ($coListe) - 1] $Lance = 1 $fin = $GUI_CHECKED ;Pas obligatoire, en fait, mais préférable, finalement. EndIf Global $Separ = 4 ;Séparateur, hauteur en pixels entre deux lignes Global $Hligne = 13 ;hauteur présumée par ligne (13 pixels de haut, voire 14) Global $Ht = $Separ + 2 * $Hligne Global $msg Dim $aLog[3] Dim $Ccoliste[UBound ($coListe)] _FileReadToArray2 (@ScriptDir & "\SkinDB.txt", $Skin) ;rendre modifiable ce chemin ChargeLog (0) While 1 Sleep(100) If $Lance = 1 Then Lance () WEnd ;==============================Fonctions totalement créées par Za==================================== Func ChargeLog ($nouv = 1) If Not FileExists ($logChemin) Or $nouv = 1 Then TrayTip (@ScriptName, "Veuillez sélectionner un fichier texte.", 0) $fichier = FileOpenDialog (@ScriptName & " - Sélectionnez ou créez un fichier contenant vos logs", $logChemin, "Text files (*.txt)|All files (*.*)", 8, "Log.txt") If $fichier = "" Then Exit ;Ok, c'est violent, mais bon.. ^^ TrayTip (@ScriptName, "Enregistrement de la place du Log en cours", 1, 16) _FileWriteToLine2 (@ScriptFullPath, 12,'Global $logChemin = "' & $fichier & '"', 1) TrayTip ("", "", 0) Else $fichier = $logChemin EndIf $existe = _FileReadToArray2 ($fichier, $aLog) ;$prgChemin et $prgNom n'ont rien à faire ici, normalement. Sauf à associer les logs avec une application. $prgChemin = RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Ankama\Dofus", "Path") & "\" $prgNom = "Dofus.exe" If Not FileExists ($prgChemin & $prgNom) Then If Not FileExists ($prgChemin & "Dofus_client.exe") Then $prgChemin = "C:\Program Files\Dofus\" If Not FileExists ($prgChemin & $prgNom) Then If Not FileExists ($prgChemin & "Dofus_client.exe") Then $prgNom = FileOpenDialog (@ScriptName & " - Sélectionnez votre lanceur de jeu Dofus", $prgChemin, "(*.exe; *.html)|Tous (*.*)", 1, "Dofus") Else $prgNom = "Dofus_client.exe" EndIf EndIf Else $prgNom = "Dofus_client.exe" EndIf EndIf If Not $existe Then Modifier (1, $fichier) EndIf _FileReadToArray2 ($fichier, $aLog) Dim $Radio[(UBound ($aLog) + 1) / $NbLignes] Fenetre () EndFunc Func Fenetre ($GUI = "FenBase") ;String Global $tFen = (UBound ($aLog) - 1) / $NbLignes Global $lFen = (200 + 200 * ($multi = 1)) If $GUI = "FenBase" Then GUIDelete ($FenBase) ;Appeler la fonction skin : Skinappel($string) For $l = 1 to UBound ($Skin) - 1 If $Skin[$l] = $GUI Then ExitLoop Next For $g = $l To UBound ($Skin) - 1 If (StringLeft ($Skin[$g], 3) = "Fen") And ($g <> $l) Then ExitLoop If (StringLeft ($Skin[$g], 3) = "Fen") And ($g = $l) Then $t = $Skin[$g] Else $t = StringRight ($Skin[$g], StringLen ($Skin[$g]) - StringInStr ($Skin[$g], " ", 2, -1)) EndIf If Not (StringInStr ($Skin[$g], ":")) And ($Skin[$g] <> "") Then Switch $t Case "Multico" If UBound ($aLog) / $NbLignes > 2 Then Assign ($t, Skinappel ($Skin[$g])) EndIf Case "Ajoute", "Retire", "Haut", "Bas", "ListeMulti" If $multi = 1 And $Lance <> 1 Then If $t = "ListeMulti" Then If $coListe[0] = "" Then $coListe[0] = $compte $compteBis = 0 While $compteBis < UBound ($coListe) $CcoListe[$compteBis] = Skinappel ($Skin[$g]) $compteBis += 1 WEnd Else Assign ($t, Skinappel ($Skin[$g])) EndIf EndIf Case "Surnoms" $compteBis = 1 While $compteBis < (UBound ($aLog)) / $NbLignes $Radio[$compteBis] = Skinappel ($Skin[$g]) ;+image ;~ GUICtrlSetLimit ($Radio[$compteBis], 12) ;pour limiter la largeur des caractères. (je n'ai pas trouvé comment faire.) $compteBis += 1 WEnd GUICtrlSetState ($Radio[$compte], 1 + 256) GUICtrlSetPos ($Radio[$compte], 15, 30 + ($compte - 1) * $Ht) $compteBis = $compte Case Else ;Dans tous les cas "normaux" Assign ($t, Skinappel ($Skin[$g])) EndSwitch EndIf Next GUISetOnEvent($GUI_EVENT_CLOSE, "Quit") GUISetState () If $GUI = "FenBase" Then DesAct () EndFunc Func Skinappel ($String) Local $ligne = 1, $ligneBis Local $param, $s Dim $SkinBis[9] Do $ligne += 1 Until $Skin[$ligne - 1] = $String $marqueur = StringInStr ($Skin[$ligne], " ", 2, 1) $ligneBis = $ligne While StringInStr ($Skin[$ligneBis], " ", 2, 1) = $marqueur $param = StringRight (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), StringLen (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1))) - StringInStr (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), ":") - 1) If (Execute ($param) <> '') Or ($param = '""') Then $param = Execute ($param) Switch StringLeft (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), StringInStr (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), ":")) Case "Type :" $SkinBis[0] = $param ;commande choisie Case "contenu1 :" If $param = "$aLog[$compteBis]" Then $SkinBis[1] = "" Else $SkinBis[1] = $param ;valeur affectée EndIf Case "largeur :" If $SkinBis[0] = "Fenêtre" Then $SkinBis[2] = $param Else $SkinBis[4] = $param EndIf Case "hauteur :" If $SkinBis[0] = "Fenêtre" Then $SkinBis[3] = $param Else $SkinBis[5] = $param EndIf Case "posx :" If $SkinBis[0] = "Fenêtre" Then $SkinBis[4] = $param Else $SkinBis[2] = $param EndIf Case "posy :" If $SkinBis[0] = "Fenêtre" Then $SkinBis[5] = $param Else $SkinBis[3] = $param EndIf Case "style :" If $SkinBis[5] = "" Then If $SkinBis[4] = "" Then $SkinBis[4] = -1 $SkinBis[5] = -1 EndIf $SkinBis[6] = $param Case "étendu :" $SkinBis[7] = $param Case "parenté :" If $SkinBis[0] = "Groupe" Then $SkinBis[1] = $param ElseIf ($SkinBis[0] = "Menu") Or ($SkinBis[0] = "S-Menu") Then $SkinBis[2] = $param Else $SkinBis[8] = $param EndIf Case "Positionnement :" $SkinBis[3] = $param EndSwitch $ligneBis += 1 WEnd $s = Skin ($SkinBis) Dim $SkinTer[2] $ligneBis = $ligne While StringInStr ($Skin[$ligneBis], " ", 2, 1) = $marqueur $SkinTer[1] = StringRight (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), StringLen (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1))) - StringInStr (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), ":") - 1) If StringInStr ($SkinTer[1], ",") > 0 Then $SkinTer = StringSplit ($SkinTer[1], ",") ElseIf (Execute ($SkinTer[1]) <> '') Or ($SkinTer[1] = '""') Then $SkinTer[1] = Execute ($SkinTer[1]) EndIf $SkinBis[0] = StringLeft (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), StringInStr (StringRight ($Skin[$ligneBis], StringLen($Skin[$ligneBis]) - StringInStr ($Skin[$ligneBis], " ", 2, -1)), ":") - 2) Switch $SkinBis[0] Case "Curfen" $SkinBis[1] = $SkinTer[1] $SkinBis[2] = 0 ;ou 1 pour remplacer constamment le curseur dans la fenêtre ciblée $SkinBis[3] = $s Skin($SkinBis) Case "Fond-F" $SkinBis[1] = $SkinTer[1] $SkinBis[2] = $s Skin ($SkinBis) Case "Ic-F" $SkinBis[1] = $SkinTer[1] $SkinBis[2] = -1 ;(pour l'icône par défaut du fichier ciblé...) $SkinBis[3] = $s Skin ($SkinBis) Case "Police-Fen" $SkinBis[1] = $SkinTer[1] ;size $SkinBis[2] = $SkinTer[2] ;weight $SkinBis[3] = $SkinTer[3] ;attribute $SkinBis[4] = $SkinTer[4] ;fontname $SkinBis[5] = $s ;winhandle Skin ($SkinBis) Case "OnEvent" ;ne fonctionne pas encore. Snaffou. :( $SkinBis[1] = $SkinTer[1] ;Event ciblé $SkinBis[2] = $SkinTer[2] ;fonction associée $SkinBis[3] = $s ;~ Skin ($SkinBis) Case "State" $SkinBis[1] = $SkinTer[1] $SkinBis[2] = $s Skin ($SkinBis) Case "Stylfaen" $SkinBis[1] = $SkinTer[1] $SkinBis[2] = $SkinTer[2] $SkinBis[3] = $s Skin ($SkinBis) Case "Coul" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] Skin ($SkinBis) Case "Cur" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] Skin ($SkinBis) Case "D-Coul" $SkinBis[1] = $SkinTer[1] $SkinBis[2] = $s Skin ($SkinBis) Case "D-Fond-C" $SkinBis[1] = $SkinTer[1] $SkinBis[2] = $s Skin ($SkinBis) Case "Data" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] Skin ($SkinBis) Case "Etat" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] Skin ($SkinBis) Case "Event" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] Skin ($SkinBis) Case "Fond-C" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] Skin ($SkinBis) Case "Graphip'tit" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] For $n = 2 To UBound ($SlinTer) - 1 $SkinBis[$n + 1] = $SkinTer[$n] ;par($n) Next Skin ($SkinBis) Case "Im-C" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] $SkinBis[3] = $SkinTer[2] ;icône $SkinBis[4] = $SkinTer[3] ;type Skin ($SkinBis) Case "Police-C" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] ;size $SkinBis[3] = $SkinTer[2] ;weight $SkinBis[4] = $SkinTer[3] ;attribute $SkinBis[5] = $SkinTer[4] ;fontname Skin ($SkinBis) Case "Pos" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] ;left $SkinBis[3] = $SkinTer[2] ;top $SkinBis[4] = $SkinTer[3] ;width $SkinBis[5] = $SkinTer[4] ;height Skin ($SkinBis) Case "Resize" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] Skin ($SkinBis) Case "Restyle" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] $SkinBis[3] = $SkinTer[2] ;étendu Skin ($SkinBis) Case "Titruc" $SkinBis[1] = $s $SkinBis[2] = $SkinTer[1] $SkinBis[3] = $SkinTer[2] ;titre $SkinBis[4] = $SkinTer[3] ;icône $SkinBis[5] = $SkinTer[4] ;options Skin ($SkinBis) EndSwitch $ligneBis += 1 WEnd Return $s EndFunc Func Skin ($Array) Switch $Array[0] Case "Curfen" Return GUISetCursor ($Array[1], $Array[2], $Array[3]) Case "Fenêtre" Return GUICreate ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Fond-F" Return GUISetBkColor ($Array[1], $Array[2]) Case "Groupe" Return GUIStartGroup ($Array[1]) Case "Ic-F" Return GUISetIcon ($Array[1], $Array[2], $Array[3]) Case "Police-Fen" Return GUISetFont ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) Case "OnEvent" Return GUISetOnEvent ($Array[1], $Array[2], $Array[3]) Case "State" Return GUISetState ($Array[1], $Array[2]) Case "Stylfaen" Return GUISetStyle ($Array[1], $Array[2], $Array[3]) Case "Avi" Return GUICtrlCreateAvi ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7], $Array[8]) Case "Bouton" Return GUICtrlCreateButton ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Calendrier" Return GUICtrlCreateMonthCal ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Checkbox" Return GUICtrlCreateCheckbox ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Combo" Return GUICtrlCreateCombo ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Dat'action" Return GUICtrlCreateDate ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Editeur" Return GUICtrlCreateEdit ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Graphisme" Return GUICtrlCreateGraphic ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) Case "Icône" Return GUICtrlCreateIcon ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7], $Array[8]) Case "Image" Return GUICtrlCreatePic ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Input" Return GUICtrlCreateInput ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Label" Return GUICtrlCreateLabel ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Liste" Return GUICtrlCreateList ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "Menu" Return GUICtrlCreateMenu ($Array[1], $Array[2], $Array[3]) Case "MiniMenu" Return GUICtrlCreateContextMenu ($Array[1]) Case "Radio" Return GUICtrlCreateRadio ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7]) Case "S-Menu" Return GUICtrlCreateMenuItem (String ($Array[1]), $Array[2], $Array[3]) ;, $Array[4]) Case "Coul" Return GUICtrlSetColor ($Array[1], $Array[2]) Case "Cur" Return GUICtrlSetCursor ($Array[1], $Array[2]) Case "D-Coul" Return GUICtrlSetDefColor ($Array[1], $Array[2]) Case "D-Fond-C" Return GUICtrlSetDefBkColor ($Array[1], $Array[2]) Case "Data" Return GUICtrlSetData ($Array[1], $Array[2]) Case "Etat" Return GUICtrlSetState ($Array[1], $Array[2]) Case "Event" Return GUICtrlSetOnEvent ($Array[1], $Array[2]) Case "Fond-C" Return GUICtrlSetBkColor ($Array[1], $Array[2]) Case "Graphip'tit" Return GUICtrlSetGraphic ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5], $Array[6], $Array[7], $Array[8]) Case "Im-C" Return GUICtrlSetImage ($Array[1], $Array[2], $Array[3], $Array[4]) Case "Police-C" Return GUICtrlSetFont ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) Case "Pos" Return GUICtrlSetPos ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) Case "Resize" Return GUICtrlSetResizing ($Array[1], $Array[2]) Case "Restyle" Return GUICtrlSetStyle ($Array[1], $Array[2], $Array[3]) Case "Titruc" Return GUICtrlSetTip ($Array[1], $Array[2], $Array[3], $Array[4], $Array[5]) EndSwitch EndFunc Func DesAct ($DesActive = 0) ;Réactive les boutons par défaut If $DesActive = 1 Then GUICtrlSetState ($Lancer, $GUI_DISABLE) GUICtrlSetState ($Modifier, $GUI_DISABLE) GUICtrlSetState ($Nouveau, $GUI_DISABLE) GUICtrlSetState ($Supprimer, $GUI_DISABLE) GUICtrlSetState ($Options, $GUI_DISABLE) GUICtrlSetState ($Fichiers, $GUI_DISABLE) GUICtrlSetState ($Aide, $GUI_DISABLE) Else GUICtrlSetState ($Lancer, $GUI_ENABLE) GUICtrlSetState ($Modifier, $GUI_ENABLE) GUICtrlSetState ($Nouveau, $GUI_ENABLE) GUICtrlSetState ($Supprimer, $GUI_ENABLE) GUICtrlSetState ($Options, $GUI_ENABLE) GUICtrlSetState ($Fichiers, $GUI_ENABLE) GUICtrlSetState ($Aide, $GUI_ENABLE) EndIf EndFunc Func FSupprimer () If MsgBox (0x51, @ScriptName & " - Suppression", "Souhaitez-vous vraiment détruire cette entrée ?") = 2 Then Return DesAct (1) TrayTip (@ScriptName, "Effacement en cours...", 10, 16) $ligne = $compte * $NbLignes + 1 MRetire ($ligne) While $ligne < UBound ($aLog) $aLog[$ligne - $NbLignes] = $aLog[$ligne] $ligne += 1 WEnd ReDim $aLog[UBound ($aLog) - $NbLignes] ReDim $Radio[UBound ($Radio) - 1] If $compte > (UBound ($aLog) - 1) / $NbLignes Then $compte -= 1 _FileWriteFromArray2 ($fichier, $aLog, 1, UBound ($aLog) - 1) TrayTip ("", "", 0) Fenetre () EndFunc Func FModifier () DesAct (1) Modifier ($compte, $fichier) EndFunc Func FNouveau () DesAct (1) ReDim $aLog[UBound ($aLog) + $NbLignes] ReDim $Radio[UBound ($Radio) + 1] Modifier ((UBound ($aLog) - 1) / $NbLignes, $fichier) EndFunc Func Modifier ($compteBis, $fich) Global $compteTer = $NbLignes * ($compteBis - 1) + 1 Global $FenMod, $LabelSurnom, $LabelClef, $LabelNDC, $LabelMDP, $InputPseudo, $InputClef, $InputNDC, $InputMDP, $BValide, $BAnnule, $Encrypt = StringSplit ($aLog[$compteTer + 1], "{TAB}") Fenetre ("FenMod") EndFunc Func ModAnnule () GUIDelete($FenMod) Desact () EndFunc Func ModModifier () If MsgBox (0x51, @ScriptName & " - Modifications", "Attention, vous vous apprêtez à" & @CRLF & "modifier définitivement ces données." & @CRLF & "Êtes-vous sûr ?") = 2 Then Return If GUICtrlRead ($InputPseudo) <> "" Then TrayTip (@ScriptName, "Écriture en cours...", 0, 16) $aLog[$compteTer] = GUICtrlRead ($InputPseudo) _FileWriteToLine2 ($fichier, $compteTer, $aLog[$compteTer], 1) If GUICtrlRead ($InputNDC) <> "" Then If GUICtrlRead ($InputClef) = "" Then $Encrypt[1] = GUICtrlRead ($InputNDC) Else $Encrypt[1] = _StringEncrypt (1, GUICtrlRead ($InputNDC), GUICtrlRead ($InputClef)) EndIf EndIf If GUICtrlRead ($InputMDP) <> "" Then If GUICtrlRead ($InputClef) = "" Then $Encrypt[UBound ($Encrypt) - 1] = GUICtrlRead ($InputMDP) Else $Encrypt[UBound ($Encrypt) - 1] = _StringEncrypt (1, GUICtrlRead ($InputMDP), GUICtrlRead ($InputClef)) EndIf EndIf $Encrypt = $Encrypt[1] & "{TAB}" & $Encrypt[UBound ($Encrypt) - 1] If $Encrypt <> $aLog[$compteTer + 1] Then $aLog[$compteTer + 1] = $Encrypt _FileWriteToLine2 ($fichier, $compteTer + 1, $aLog[$compteTer + 1], 1) EndIf TrayTip ("", "", 0) EndIf GUIDelete ($FenMod) GUIDelete ($FenBase) Fenetre () EndFunc Func FRadio () Local $mess = @GUI_CtrlId If $mess <> $Radio[$compte] Then GUICtrlSetPos ($Radio[$compte], 5, 27 + (($compte - 1) * $Ht)) While $mess <> $Radio[$compte] $compte += 1 If $compte > (UBound ($Radio) - 1) Then $compte = 1 EndIf WEnd GUICtrlSetPos ($Radio[$compte], 15, 30 + (($compte - 1) * $Ht)) Else If $multi = 1 Then MAjoute () Else FLancer ($compte) If $fin = $GUI_CHECKED Then Exit EndIf EndIf EndFunc Func FMultico () $multi = GUICtrlRead ($Multico) If $coListe[0] = "" Then $coListe[0] = $compte Fenetre () EndFunc Func MAjoute () Local $n For $n = 0 To UBound ($coListe) - 1 If $coListe[$n] = $compte Then ContinueLoop 2 Next ReDim $coListe[UBound ($coListe) + 1] ReDim $CcoListe[UBound ($CcoListe) + 1] $coListe[UBound ($coListe) - 1] = $compte $CcoListe[UBound ($CcoListe) - 1] = GUICtrlCreateCheckbox ($aLog[$coListe[UBound ($CcoListe) - 1]* $NbLignes - 1], 255, 27 + (UBound ($CcoListe) - 1) * $Ht) Fenetre ("FenBase") EndFunc Func MRetire ($suppr = -1) Local $n = 0, $q While $n < UBound ($CcoListe) If $suppr = -1 Then If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED And $suppr = -1 Then $q = $n While $q < UBound ($CcoListe) - 1 $coListe[$q] = $coListe[$q + 1] GUICtrlSetState ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1])) GUICtrlSetData ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1], 1)) $q += 1 WEnd GUICtrlDelete ($CcoListe[UBound ($CcoListe) - 1]) If UBound ($coListe) > 1 Then ReDim $coListe[UBound ($coListe) - 1] ReDim $CcoListe[UBound ($CcoListe) - 1] GUICtrlSetPos ($Retire, 275, 27 + UBound ($coListe) * $Ht) GUICtrlSetPos ($Haut, 205, $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) GUICtrlSetPos ($Bas, 205, ($Ht - 3) + $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) $n -= 1 Else $coListe[0] = "" $multi = 0 Fenetre () EndIf EndIf Else If GUICtrlRead ($CcoListe[$n], 1) = $aLog[$suppr - $NbLignes] Then $q = $n While $q < UBound ($CcoListe) - 1 $coListe[$q] = $coListe[$q + 1] GUICtrlSetState ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1])) GUICtrlSetData ($CcoListe[$q], GUICtrlRead ($CcoListe[$q + 1], 1)) $q += 1 WEnd GUICtrlDelete ($CcoListe[UBound ($CcoListe) - 1]) If UBound ($coListe) > 1 Then ReDim $coListe[UBound ($coListe) - 1] ReDim $CcoListe[UBound ($CcoListe) - 1] GUICtrlSetPos ($Retire, 275, 27 + UBound ($coListe) * $Ht) GUICtrlSetPos ($Haut, 205, $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) GUICtrlSetPos ($Bas, 205, ($Ht - 3) + $Ht + $Ht * (UBound ($CcoListe) - 1) / 2, 40) $n -= 1 Else $coListe[0] = "" $multi = 0 Fenetre () EndIf EndIf EndIf $n += 1 WEnd EndFunc Func MHaut () Local $n = 1, $z, $y While $n < UBound ($CcoListe) If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED Then $z = GUICtrlRead ($CcoListe[$n]) $y = GUICtrlRead ($CcoListe[$n], 1) GUICtrlDelete ($CcoListe[$n]) $CcoListe[$n] = GUICtrlCreateCheckbox (GUICtrlRead ($CcoListe[$n - 1], 1), 255, 27 + $n * $Ht) GUICtrlSetState ($CcoListe[$n], GUICtrlRead ($CcoListe[$n - 1])) GUICtrlDelete ($CcoListe[$n - 1]) $CcoListe[$n - 1] = GUICtrlCreateCheckbox ($y, 255, 27 + ($n - 1) * $Ht) GUICtrlSetState ($CcoListe[$n - 1], $z) $z = $coListe[$n] $coListe[$n] = $coListe[$n - 1] $coListe[$n - 1] = $z EndIf $n = $n + 1 WEnd EndFunc Func MBas () Local $n = UBound ($CcoListe) - 2, $z While $n >= 0 If GUICtrlRead ($CcoListe[$n]) = $GUI_CHECKED Then $z = GUICtrlRead ($CcoListe[$n]) $y = GUICtrlRead ($CcoListe[$n], 1) GUICtrlDelete ($CcoListe[$n]) $CcoListe[$n] = GUICtrlCreateCheckbox (GUICtrlRead ($CcoListe[$n + 1], 1), 255, 27 + $n * $Ht) GUICtrlSetState ($CcoListe[$n], GUICtrlRead ($CcoListe[$n + 1])) GUICtrlDelete ($CcoListe[$n + 1]) $CcoListe[$n + 1] = GUICtrlCreateCheckbox ($y, 255, 27 + ($n + 1) * $Ht) GUICtrlSetState ($CcoListe[$n + 1], $z) $z = $coListe[$n] $coListe[$n] = $coListe[$n + 1] $coListe[$n + 1] = $z EndIf $n = $n - 1 WEnd EndFunc Func RModif ($mod = 0) Global $n, $r Global $fenRac, $LabelSansNom, $modRac = 0, $IScript, $BSParc, $LabelSansNom2, $ILog, $BLParc, $LComptes, $LabelSansNom3, $IComptes, $RBValide, $RBAnnule Fenetre ("FenRac") EndFunc Func ParcoureScript () $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre script :", @ScriptDir, "Scripts (*.au3 ;*.exe)|Tous (*.*)", 8, @ScriptName) If $n <> "" Then GUICtrlSetData ($IScript, $n) EndFunc Func ParcoureLog () $n = FileOpenDialog (@ScriptName & " - Sélectionnez le fichier contenant vos logs :", $logChemin, "Textes (*.txt)|Tous (*.*)", 8, "Log.txt") If $n <> "" Then GUICtrlSetData ($ILog, $n) EndFunc Func RValide () $n = FileOpenDialog (@ScriptName & " - Choissez le nom et répertoire du raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk") If $n = '' Then Return If StringInStr ($n, ".lnk") = 0 Then $n &= ".lnk" FileCreateShortcut (GUICtrlRead ($IScript), $n, "", ' "' & GUICtrlRead ($ILog) & '" ' & GUICtrlRead ($IComptes)) GUIDelete ($fenRac) EndFunc Func RFinir () GUIDelete ($fenRac) EndFunc Func RCharge () $n = FileOpenDialog (@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName & ".lnk") If $n = "" Then Return $r = FileGetShortcut ($n) $logChemin = StringMid ($r[2], 3, StringInStr ($r[2], '"', 2, 2) - 3) $coListe = StringSplit (StringMid ($r[2], StringInStr ($r[2], '"', 2, 2) + 2), ",") For $n = 0 To UBound ($coListe) - 2 $coListe[$n] = $coListe[$n+1] Next ReDim $coListe[UBound ($coListe) - 1] $Lance = 1 GUIDelete ($fenBase) ChargeLog () Return EndFunc Func RSuppre () $Racc = FileOpenDialog (@ScriptName & " - Sélectionnez votre raccourcis :", @ScriptDir, "Raccourcis (*.lnk)", 8, @ScriptName) If $Racc <> "" Then FileDelete ($Racc) EndFunc Func Lance () If $multi = 1 Or $Lance = 1 Then For $n = 0 To UBound ($coListe) - 1 If $coListe[$n] <= ((UBound ($aLog) - 1) / $NbLignes) And $coListe[$n] > 0 Then FLancer ($coListe[$n]) Next $Lance = 0 Else FLancer ($compte) EndIf If $fin = $GUI_CHECKED Then Exit EndFunc Func FLancer ($compteBis = $compte) DesAct (1) $compteBis = ($compteBis - 1) * $NbLignes + 1 If StringInStr ($aLog[$compteBis + 1], "{TAB}") = 0 Then Return ;vérif alakon, à faire pour la prochaine version ^^ Local $Clef = InputBox (@ScriptName & " - Code du compte " & $aLog[$compteBis], "Veuillez entrer la clef de " & $aLog[$compteBis]& " :", "", "°") If Version texte du skin : Code:
fenBase Type : Fenêtre contenu1 : @ScriptName largeur : $lFen hauteur : 19+50+$tFen*$Ht+30 posx : -1 -Police-Fen : ,,,Fixedsys posy : -1 style : 0x70000 -OnEvent : $GUI_EVENT_CLOSE,Quit Fichiers Type : Menu contenu1 : "Fichier" parenté : -1 Positionnement : 0 FNouv Type : S-Menu contenu1 : "Nouveau" parenté : $Fichiers Positionnement : 0 Event : "ChargeLog" FCharge Type : S-Menu contenu1 : "Charger" parenté : $Fichiers Positionnement : 1 Event : "ChargeLog" FLigneVide Type : S-Menu contenu1 : "" parenté : $Fichiers Positionnement : 2 Event : "Void" FQuit Type : S-Menu contenu1 : "Quitter" parenté : $Fichiers Positionnement : 3 Event : "Quit" Options Type : Menu contenu1 : "Options" parenté : -1 Positionnement : 1 OLog Type : Menu contenu1 : "Compte" parenté : $Options Positionnement : 0 LLancer Type : S-Menu contenu1 : "Lancer !" parenté : $OLog Positionnement : 0 Event : "Lance" LNouveau Type : S-Menu contenu1 : "Nouveau" parenté : $OLog Positionnement : 1 Event : "FNouveau" LModifier Type : S-Menu contenu1 : "Modifier" parenté : $OLog Positionnement : 2 Event : "FModifier" LSupprimer Type : S-Menu contenu1 : "Supprimer" parenté : $OLog Positionnement : 3 Event : "FSupprimer" ORaccourcis Type : Menu contenu1 : "Raccourcis" parenté : $Options Positionnement : 1 RNouveau Type : S-Menu contenu1 : "Nouveau" parenté : $ORaccourcis Positionnement : 0 Event : "RModif" RCharge Type : S-Menu contenu1 : "Charger" parenté : $ORaccourcis Positionnement : 1 Event : "RCharge" RModifier Type : S-Menu contenu1 : "Modifier" parenté : $ORaccourcis Positionnement : 2 Event : "Void" RSupprime Type : S-Menu contenu1 : "Supprimer" parenté : $ORaccourcis Positionnement : 3 Event : "RSuppre" :OSkin Type : Menu contenu1 : "Skins" parenté : $Options Positionnement : 2 Event : "Void" SNouveau Type : S-Menu contenu1 : "Nouveau" parenté : $OSkin Positionnement : 0 Event : "Void" SSauvegarder Type : S-Menu contenu1 : "Sauver" parenté : $OSkin Positionnement : 1 Event : "Void" SModifier Type : S-Menu contenu1 : "Modifier" parenté : $OSkin Positionnement : 2 Event : "Void" SCharger Type : S-Menu contenu1 : "Charger" parenté : $OSkin Positionnement : 3 Event : "Void" :Aide Type : Menu contenu1 : "Aide" parenté : -1 Positionnement : 3 ATuto Type : S-Menu contenu1 : "Tutoriel" parenté : $Aide Positionnement : 0 Event : "Void" Label Type : Label contenu1 : "Choisissez un compte à Logger :" posx : 1 posy : -2 largeur : -1 hauteur : -1 style : -1 étendu : 0 Event : "Void" Boutons Type : Groupe parenté : $fenBase Lancer Type : Bouton contenu1 : "Lancer !" posx : 150 posy : $Ht/2+$Ht/2*$tFen largeur : 47 hauteur : 25 Event : "Lance" Multico Type : Checkbox contenu1 : "Multi" posx : 150 posy : $Hligne+$Ht+$Ht/2*$tFen largeur : -1 hauteur : $Hligne Resize : 8+768 Etat : $multi Event : "FMultico" Modifier Type : Bouton contenu1 : "Modifier" posx : 150 posy : 33+$tFen*$Ht largeur : 47 hauteur : 25 style : 0x8000 Resize : 8+64+768 Event : "FModifier" Nouveau Type : Bouton contenu1 : "Nouveau" posx : 1 posy : 33+$tFen*$Ht largeur : -1 hauteur : 25 style : 0x8000 Resize : 8+64+768 Event : "FNouveau" Supprimer Type : Bouton contenu1 : "Supprimer" posx : 75 posy : 33+$tFen*$Ht largeur : -1 hauteur : 25 style : 0x8000 Resize : 8+64+768 Event : "FSupprimer" CFini Type : Checkbox contenu1 : "Fermer le script après ce compte" posx : 15 posy : $Hligne largeur : -1 hauteur : 13 Resize : 2+32+768 Etat : $fin Event : "Fini" Ajoute Type : Bouton contenu1 : "Ajouter ->" posx : 275 posy : 0 largeur : -1 hauteur : -1 Event : "MAjoute" Retire Type : Bouton contenu1 : "<- Retirer" posx : 275 posy : 27+Ubound($coListe)*$Ht largeur : -1 hauteur : -1 Event : "MRetire" Haut Type : Bouton contenu1 : "Monte" posx : 205 posy : $Ht+$Ht*(UBound($CcoListe)-1)/2 largeur : 40 hauteur : -1 Event : "MHaut" Bas Type : Bouton contenu1 : "Baisse" posx : 205 posy : ($Ht-3)+$Ht+$Ht*(UBound($CcoListe)-1)/2 largeur : 40 hauteur : -1 Event : "MBas" Surnoms Type : Radio contenu1 : $aLog[$compteBis*$NbLignes-1]&" ." posx : 5 posy : 27+($compteBis-1)*$Ht largeur : 135 hauteur : $Ht-3 style : 0x2000 Data : $aLog[$compteBis*$NbLignes-1] Resize : 2+32+512 Event : "FRadio" ListeMulti Type : Checkbox contenu1 : $aLog[$coListe[$compteBis] * $NbLignes - 1] posx : 255 posy : 27+$compteBis * $Ht FenMod Type : Fenêtre contenu1 : @ScriptName & " - ajouter/modifier" largeur : 200 hauteur : $HLigne*12 posx : -1 posy : -1 style : -1 étendu : -1 -Parenté : $fenBase -Police-Fen : ,,,Fixedsys LabelSurnom Type : Label contenu1 : "Veuillez entrer un" & @CRLF & " pseudonyme :" posx : 1 posy : 2 largeur : 100 hauteur : -1 style : -1 étendu : -1 Event : "Void" LabelClef Type : Label contenu1 : @CRLF&"Clef de cryptage :" posx : 120 posy : 0 largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "Void" LabelNDC Type : Label contenu1 : "Veuillez entrer le nom de compte Dofus :" posx : 0 posy : $HLigne*4 largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "Void" LabelMDP Type : Label contenu1 : "Veuillez entrer le mot de pass associé :" posx : 0 posy : $HLigne*7 largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "Void" InputPseudo Type : Input contenu1 : $aLog[$compteTer] posx : 2 posy : $Hligne*2 largeur : 125 hauteur : -1 style : -1 étendu : -1 InputClef Type : Input contenu1 : "" posx : 149 posy : $Hligne*2 largeur : 50 hauteur : -1 style : -1 étendu : -1 InputNDC Type : Input contenu1 : "" posx : 2 posy : $Hligne*5 largeur : 196 hauteur : -1 style : -1 étendu : -1 InputMDP Type : Input contenu1 : "" posx : 2 posy : $Hligne*8 largeur : 196 hauteur : -1 style : -1 étendu : -1 BValide Type : Bouton contenu1 : "Valider" posx : 2 posy : $Hligne*10 largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "ModModifier" BAnnule Type : Bouton contenu1 : "Annuler" posx : 100 posy : $Hligne*10 largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "ModAnnule" FenRac Type : Fenêtre contenu1 : @ScriptName largeur : 170 hauteur : 5*$Ht+$Hligne style : -1 étendu : -1 -parenté : $fenBase -Police-Fen : ,,,Fixedsys LabelSansNom Type : Label contenu1 : "Sélectionnez le script :" posx : 0 posy : 0 largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "Void" IScript Type : Input contenu1 : @ScriptFullPath -contenu2 : $r[0] posx : 5 posy : $Hligne largeur : 100 hauteur : -1 style : -1 étendu : -1 BSParc Type : Bouton contenu1 : "Parcourir" posx : 110 posy : $Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "ParcoureScript" LabelSansNom2 Type : Label contenu1 : "Sélectionnez le log :" posx : 0 posy : $Ht+$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "Void" ILog Type : Input contenu1 : $logChemin contenu2 : StringMid($r[2],3,StringInStr($r[2],'"',2,2)-3) posx : 5 posy : $Ht+2*$Hligne largeur : 100 hauteur : -1 style : -1 étendu : -1 BLParc Type : Bouton contenu1 : "Parcourir" posx : 110 posy : $Ht+2*$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "ParcoureLog" LabelSansNom3 Type : Label contenu1 : "Entrez les n° des comptes :" posx : 0 posy : 2*$Ht+2*$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "Void" IComptes Type : Input contenu1 : $compte contenu2 : StringMid($r[2],StringInStr($r[2],'"',2,2)+2) posx : 5 posy : 2*$Ht+3*$Hligne largeur : 100 hauteur : -1 style : -1 étendu : -1 RBValide Type : Bouton contenu1 : "Valider" posx : 0 posy : 3*$Ht+3*$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "RValide" RBAnnule Type : Bouton contenu1 : "Annuler" posx : 110 posy : 3*$Ht+3*$Hligne largeur : -1 hauteur : -1 style : -1 étendu : -1 Event : "RFinir" MessageFlood Type : 5 contenu1 : "(\__/)" & @CRLF & "( ' . ' )" & @CRLF & '(")_(")' contenu2 : @CRLF & "Vous pouvez aussi aller jouer dehors," & @CRLF & "avec les papillons, les fleurs et les oiseaux." contenu3 : "" contenu4 : @CRLF & "Ou patientez 2 secondes," & @CRLF & "que la fenêtre se ferme d'elle-même." contenu5 : @CRLF & "La Vie est comme cette boîte de dialogue :" & @CRLF & "C'est quand elle se ferme qu'on arrive à l'essentiel." Fenêtre : Type : Fenêtre contenu1 : contenux : largeur : hauteur : posx : posy : style : étendu : parenté : Contrôle : Type : contenu1 : contenux : posx : -1 posy : -1 largeur : -1 hauteur : -1 style : -1 étendu : -1 Data : Resize : Etat : Menu : Type : contenu1 : contenux : parenté : Positionnement : Etat : Flood : Type : Nombre de messages contenu1 : contenux : Global : Type : $SkinBase[0] Curfen, Fenêtre, Fond-F, Ic-F, Police-Fen, OnEvent, State, Stylfaen Avi, Bouton, Calendrier, Checkbox, Combo, Dat'action, Editeur, Graphisme, Groupe, Icône, Image, Input, Label, Liste, Menu, MiniMenu, Radio, S-Menu Coul, D-Coul, D-Fond-C, Data, Etat, Event, Fond-C, Graphip'tit, Im-C, Police-C, Pos, Resize, Restyle, Titruc Nombre déterminant de messages floodesques (cas unique) -> Rand (0 à Nombre-1, 1) [Modificateur de GUI] : Paramètre 1,paramètre 2,.. contenu1 : Lié à conditions $SkinBase[1] contenu2 : Lié à conditions.. etc $SkinBase[1] (aussi) posx, posy, largeur, hauteur : Chiffres $SkinBase[2 à 5] style, étendu : 0xChiffre $SkinBase[6 et 7] parenté : Chiffre/Nom de variable $SkinBase[8] ou $SkinBase[3] pour un élément de menu Positionnement : Chiffre $SkinBase[4] spécifique aux menus Améliorations depuis la 1_9b : -> Résolution du bug de suppression d'une entrée dans la liste de Multi -> Il est maintenant possible de changer de manière indépendante le nom de compte et le mot de pass du compte associé à un surnom. Ca écrase simplement les anciennes informations, et il est conseillé d'utiliser la même Clef pour le Ndc et le Mdp. /!\ Seule la personne qui a entré les infos à l'origine peut savoir si c'est le cas. -> Les informations de skin sont récupérées depuis un fichier externe (SkinDB.txt), ce qui allège le script et la programmation de celui-ci. Prévisions météorologiques d'améliorations : -> Finalisation de la v1_10 en fournissant un module de skinnage à l'utilisateur -> Meilleure prise en charge de la fermeture des fenêtres du script -> Mise en relation des phrases de flood (dans la fenêtre "Lancement de la fenêtre Dofus" + message-flood) avec le fichier de skin (pour les changer facilement) Elles sont déjà présentes dans le-dit fichier, mais ne sont pas utiles pour l'instant. -> Permettre un chemin (et un nom) variable pour le fichier de skin En ce qui concerne la suite (vi, je vois loin..), ça vous intéresserait d'avoir ça : -> Permettre de changer une Clef de cryptage des informations Ndc et Mdp (il serait indispensable de connaître la clef de base pour la changer) ? -> Un script compilé "clef en main", qui contiendrait directement le fichier de skin basique (pour n'avoir qu'un unique fichier à télécharger) ? -> Des fonctions aléatoires débiles (type qui réagit à la date : le premier avril, ouvre une pop-up "Poisson d'avril !§§") dans le fichier de skin ? (sans atteinte possible à la sécurité, encore une fois.) Et tout le reste, auquel vous penserez, et que vous pourriez souhaiter ! (Demandez-moi l'impossible, je pourrai le réaliser. Vive l'informatique ! ![]() Za. P.S : Après écriture de mon pavé, je vois que j'ai oublié de donner le mode d'emploi du fichier de Skin. Donc, ça fonctionne ainsi : [Nom de variable] c'est la variable qui permet d'interagir avec le contenu. Pas facile à expliquer, mais c'est "l'adresse" de la boîte visée. (tabulation)[message] : [valeur] la tabulation permet au script de se retrouver dans les opérations, le message sera type de modification à y porter, et la valeur sera la valeur appliquée à la modification. En fin de fichier, toutes les valeurs utilisables sont renseignées. En attendant la fonction qui vous permettra de faire ça facilement, je vous renvoie à la doc de Auto-It partie "GuiCtrlCreate[Objet]", pour plus de détails. Exemple : Code:
fenBase Type : Fenêtre posx : 12 Les valeurs de "-1" sont un moyen de dire "garder la valeur par défaut". |
![]() |
|
|
Edit
![]() ---- Oui, j'ai avancé la prog, mais pour le moment, je l'ai pas mit à disposition. Ca ressemble à ça, maintenant (chez moi) : ![]() (Y'a des images maintenant, mais ce n'est pas encore bien terminé pour leur affichage.) J'avoue, je travaille d'abord pour moi, et mes besoins sont très particuliers. J'aimerais bien dans un futur plus ou moins proche avoir fini mon interface utilisateurs (je m'entraîne sur le "Assistez-Toi !" pour ça, huhu ^^), et permettre une personnalisation totale des commandes. Pour la suite, j'ai prévu aussi (et ça se rapproche, quand j'ai le temps d'y toucher ^^) de faire la connexion en parallèle des comptes avec la liste multico. Je vais voir à proposer un système de "clef auto" : rentrer la clef une seule fois, qui sera utilisée pour tous les comptes ensuite... Bref, au lancement du premier compte : "Veuillez entrer la clef .." (etc), et si l'option "clef auto" est enclenchée, les autres comptes seront testés par défaut avec cette clef. Je ne sais pas si c'est trop embrouillé à expliquer, mais en gros, ça ne change pas le niveau de sécurité, tout en soulageant l'utilisateur. Bref, je note à ajouter. ^^ Juste pour avoir un aperçu de la version 1_10bêta4d : Script : DofusLog-v1_10Bêta4d.au3 - 30.92 kB Skin : SkinDB.txt - 11.15 kB Et le petit coeur (très important !) : Coeur2.bmp - 303.8 kB Les 3 fichiers devront être placés de préférence dans le même répertoire (je n'ai pas encore géré le changement de dossier, désolée.. ![]() Juste pour faire plaisir à ZDS, j'ai ajouté : Plutôt que de passer la souris sur le bouton orange "OK", le script fait directement un "tab"+"entrée", donc voilà, c'est "mieux". (Mais j'aime moins. Et vous, vous pensez quoi de cette amélioration ?) Za. |
![]() |
|
Suivre Fil fermé |
Connectés sur ce fil1 connecté (0 membre et 1 invité)
Afficher la liste détaillée des connectés
|