[..] Guiprobleme avec script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
kakashi545
Niveau 2
Niveau 2
Messages : 22
Enregistré le : ven. 26 déc. 2008 11:45
Status : Hors ligne

[..] Guiprobleme avec script

#1

Message par kakashi545 »

Bonsoir bon voila j'ai fait un gui le voici le code:

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 423, 173, 199, 124)
$Label1 = GUICtrlCreateLabel("voici le générateur de mod de passe complexe avec enregistrement", 24, 8, 386, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("et envoie dans la boite email .", 24, 32, 175, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$code = GUICtrlCreateInput("code", 24, 64, 377, 21)
$Generer = GUICtrlCreateButton("Generer", 176, 96, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd
 
puis Adenadels ma donné le script que je rechercher(merci encore) le code :

Code : Tout sélectionner

MsgBox(0, '', _CalculPw())

Func _CalculPw()
  Local $Pass = ""
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass =  StringMid($StringNombr, Mod(StringMid(Random() / 3, 1, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 2, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 5, 3, 2), 26) + 1, 1)
  $StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
  $Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 3, 4, 2), 26) + 1, 1)
  $StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
  $Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 5, 5, 2), 26) + 1, 1)
  $StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
  $Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 7, 4, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 3, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 5, 2, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 3, 1, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 5, 2), 26) + 1, 1)

  Return $Pass
EndFunc   ;==>_Calcul

Func _ScrambleWord($sWord, $iSeed)
    If StringLen($sWord) < 2 Then Return $sWord
    Local $aSeq = _GetSequence(StringLen($sWord), $iSeed), $i, $sRet = ""
    For $i = 1 To StringLen($sWord)
        $sRet &= StringMid($sWord, $aSeq[$i], 1)
    Next
    Return $sRet
  EndFunc


Func _GetSequence($iLength, $iSeed)
    Local $aRet[$iLength + 1], $i, $j, $k
    $aRet[0] = $iLength
    For $i = 1 To $iLength
        $aRet[$i] = $i
    Next
    SRandom($iSeed)
    For $i = 1 To $iLength
        $j = Random(1, $iLength, 1)
        $k = $aRet[$j]
        $aRet[$j] = $aRet[$i]
        $aRet[$i] = $k
    Next
    Return $aRet
EndFunc
et je voudrais mettre le gui et le script ensemble deja mais que le script s'éxecute uniquement si je clique sur génerer et une seule fois, et qui soit générer dans cette partie la

Code : Tout sélectionner

$code = GUICtrlCreateInput("code", 24, 64, 377, 21)
.
le 2e probléme c'est que je voudrais aussi que le code génerer soit envoyé dans ma boite adresse email est-ce possible?

merci d'avance
Modifié en dernier par kakashi545 le mer. 24 mars 2010 22:17, modifié 1 fois.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: Guiprobleme avec script

#2

Message par GaRydelaMer »

Bonsoir

Code : Tout sélectionner

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
[b]        Case $Generer
            GuiCtrlSetData($code, _CalculPw())[/b]
    EndSwitch
WEnd
voila tu modifie comme ca ca doit etre bon.

En fait faut bien comprendre comment fonctionne les GUI (voir tuto et doc), mais en gros le While sert a le garder ouvert, donc on utilise la fonction GUIGetMsg() pour être informer des actions faites sur le GUI.

Donc en l'occurence, on attent le clic sur le bouton -Case $Generer
la variable qui a servi pour le créer et ensuite on met la valeur dans le contrôle $Code. la valeur est renvoyé par la fonction _CalculPw().
kakashi545
Niveau 2
Niveau 2
Messages : 22
Enregistré le : ven. 26 déc. 2008 11:45
Status : Hors ligne

Re: Guiprobleme avec script

#3

Message par kakashi545 »

Merci de ta réponse, voila j'ai fait sa :

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 423, 173, 199, 124)
$Label1 = GUICtrlCreateLabel("voici le générateur de mot de passe complexe avec enregistrement", 24, 8, 386, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("et envoie dans la boite email .", 24, 32, 175, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$code = GUICtrlCreateInput("code", 24, 64, 377, 21)
$Generer = GUICtrlCreateButton("Generer", 176, 96, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
       Case $Generer
            GuiCtrlSetData($code, _CalculPw())

Func _CalculPw()
  Local $Pass = ""
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass =  StringMid($StringNombr, Mod(StringMid(Random() / 3, 1, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 2, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 5, 3, 2), 26) + 1, 1)
  $StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
  $Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 3, 4, 2), 26) + 1, 1)
  $StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
  $Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 5, 5, 2), 26) + 1, 1)
  $StringMinus = _ScrambleWord("abcdefghijklmnopqrstuvwxyz", Random() / 3 * 100)
  $Pass &= StringMid($StringMinus, Mod(StringMid(Random() / 7, 4, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 3, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 5, 2, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 3, 1, 2), 26) + 1, 1)
  $StringNombr = _ScrambleWord("01234567890123456789012345", Random() / 3 * 100)
  $Pass &= StringMid($StringNombr, Mod(StringMid(Random() / 7, 5, 2), 26) + 1, 1)

  Return $Pass
EndFunc   ;==>_Calcul

Func _ScrambleWord($sWord, $iSeed)
    If StringLen($sWord) < 2 Then Return $sWord
    Local $aSeq = _GetSequence(StringLen($sWord), $iSeed), $i, $sRet = ""
    For $i = 1 To StringLen($sWord)
        $sRet &= StringMid($sWord, $aSeq[$i], 1)
    Next
    Return $sRet
  EndFunc


Func _GetSequence($iLength, $iSeed)
    Local $aRet[$iLength + 1], $i, $j, $k
    $aRet[0] = $iLength
    For $i = 1 To $iLength
        $aRet[$i] = $i
    Next
    SRandom($iSeed)
    For $i = 1 To $iLength
        $j = Random(1, $iLength, 1)
        $k = $aRet[$j]
        $aRet[$j] = $aRet[$i]
        $aRet[$i] = $k
    Next
    Return $aRet

     EndSwitch
WEnd
mais malheuresement c'est suivi de

Code : Tout sélectionner

Case $Generer
Case ^ ERROR
>Exit code: 1    Time: 0.306
 
peut tu encore m'aider? et comment faire pour que le code génerer soit envoyé dans ma boite adresse email?

merci encore.
Modifié en dernier par kakashi545 le mer. 24 mars 2010 22:19, modifié 2 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: Guiprobleme avec script

#4

Message par jbnh »

Un petit passage vers les règles de présentation d'un message à nouveau ne vous refera pas de mal ;)
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
kakashi545
Niveau 2
Niveau 2
Messages : 22
Enregistré le : ven. 26 déc. 2008 11:45
Status : Hors ligne

Re: [..] Guiprobleme avec script

#5

Message par kakashi545 »

Oui désolé :lol: j'ai corrigé.
kakashi545
Niveau 2
Niveau 2
Messages : 22
Enregistré le : ven. 26 déc. 2008 11:45
Status : Hors ligne

Re: [..] Guiprobleme avec script

#6

Message par kakashi545 »

personne pour m'aider ? :(
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Guiprobleme avec script

#7

Message par GaRydelaMer »

Bonsoir

il manque le Wend

la fin de la boucle avant la function.
kakashi545
Niveau 2
Niveau 2
Messages : 22
Enregistré le : ven. 26 déc. 2008 11:45
Status : Hors ligne

Re: [..] Guiprobleme avec script

#8

Message par kakashi545 »

bonsoir si tu disait le wend ici:

Code : Tout sélectionner

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
       Case $Generer
            GuiCtrlSetData($code, _CalculPw())
            wend
ben sa ne marche toujours pas:

Code : Tout sélectionner

wend

>Exit code: 1    Time: 0.225
 
si ce n'était pas la place du wend je ne vois toujours pas alors^^"

Edit: j'ai modifié mon script qui donne ceci maintenant:

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 423, 173, 199, 124)
$Label1 = GUICtrlCreateLabel("voici le générateur de mot de passe complexe avec enregistrement", 24, 8, 386, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("et envoie dans la boite email .", 24, 32, 175, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$code = GUICtrlCreateInput("code", 24, 64, 377, 21)
$Generer = GUICtrlCreateButton("Generer", 176, 96, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
       Case $Generer
            GuiCtrlSetData($code, _CalculPw())
            
Func _CalculPw()
$pass = Random(100,999,1) & Chr(Random(97,122,1)) & Chr(Random(97,122,1)) & Chr(Random(97,122,1)) & Random(1000,9999,1)
EndFunc   ;==>_Calcul

EndSwitch
WEnd   
la j'ai réussi a lancer l'interface graphique mais quand je clique sur génerer:

Code : Tout sélectionner

GuiCtrlSetData($code, Func _CalculPw())
GuiCtrlSetData($code, ^ ERROR
>Exit code: 1    Time: 2.224
 
aidez moi svp :cry: merci
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Guiprobleme avec script

#9

Message par GaRydelaMer »

Le voila complet, avec vérification et la fonction mail que tu va devoir créer.

Mais par contre je te conseille
1 utiliser Scite pour écrire et tester ton programme.
2 lire la doc
3 de toujours déclarer tes variables

Le while, le Func ces "balises" se ferme.

Code : Tout sélectionner

#Include <ButtonConstants.au3>
#Include <EditConstants.au3>
#Include <GUIConstantsEx.au3>
#Include <StaticConstants.au3>
#Include <WindowsConstants.au3>
Opt("MustDeclareVars", 1)

Global $GUI_Main, $Input_Mdp, $Bt_Generer
#Region ### START Koda GUI section ### Form=
$GUI_Main = GUICreate("Form1", 423, 173, 199, 124)
GUICtrlCreateLabel("voici le générateur de mot de passe complexe avec enregistrement", 24, 8, 386, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlCreateLabel("et envoie dans la boite email .", 24, 32, 175, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Input_Mdp = GUICtrlCreateInput("", 24, 64, 377, 21)
$Bt_Generer = GUICtrlCreateButton("Generer", 176, 96, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Local $nMsg
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            If StringRegExp(GUICtrlRead($Input_Mdp), "\d{3}[a-z]{3}\d{4}") Then
                _EnvoieMail()
            EndIf
            Exit
        Case $Bt_Generer
            GUICtrlSetData($Input_Mdp, _CalculPw())
    EndSwitch
WEnd

Func _CalculPw()
    Return Random(100, 999, 1) & _
            Chr(Random(97, 122, 1)) & _
            Chr(Random(97, 122, 1)) & _
            Chr(Random(97, 122, 1)) & _
            Random(1000, 9999, 1)
EndFunc   ;==>_CalculPw

Func _EnvoieMail()
    Local $PassGenerer = GUICtrlRead($Input_Mdp)
    ConsoleWrite("Envoie par mail du code:" & $PassGenerer & @LF)
    ;;; envoie mail
EndFunc   ;==>_EnvoieMail
edit: ortographe
edit2: $Input_Mdp à la place de $code
kakashi545
Niveau 2
Niveau 2
Messages : 22
Enregistré le : ven. 26 déc. 2008 11:45
Status : Hors ligne

Re: [..] Guiprobleme avec script

#10

Message par kakashi545 »

Bonjour et merci sa marche, sa génère bien a l'endroit voulu et tout mais pour la fonction émail

Code : Tout sélectionner

Func _EnvoieMail()
    Local $PassGenerer = GUICtrlRead($Input_Mdp)
    ConsoleWrite("Envoie par mail du code:" & $PassGenerer & @LF)
    ;;; envoie mail
EndFunc   ;==>_EnvoieMail
je ne la comprend pas très bien et donc je galère a la faire pouvez vous m'expliquez? merci
Répondre