[..] Creation d'une Gui avec Commande Send()

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

[..] Creation d'une Gui avec Commande Send()

#1

Message par joker »

Creation d'une Gui avec Commande Send()

introduction :
Enfaite je pense pas que ce soit très dur mais je n'y parvient vraiment pas, enfaite j'aimerai que sous un jeu en ligne, n'importe lequel, sa dise bonjour en couleur... alors j'ai le script qui permet de parlé en couleur donc explication !

Fonctionnement :
Mon programme j'aimerai qu'il est une interface avec 5 bouton :
- Vert
- Bleu
- Jaune
- Rouge
- Noir

Et que lorsque je clique sur l'un de ces boutons ça face ceci :
- Entrer
- Insertion d'un script (script de couleur vert si on clique sur le bouton vert)
- puis Entrer pour confirmé

Et ceci pour chaque couleur

Est-ce que c'est facilement fesable ?
le script qui change de couleur sa peut etre aussi du texte normal, je veux dire quand on clique sur vert sa peut ecrire "bonjour" sauf que moi ça sera un script pour faire de la couleur dans world of warcraft notamment !

donc?
Modifié en dernier par joker le sam. 15 nov. 2008 18:27, modifié 3 fois.
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: Robot qui parle

#2

Message par timmalos »

Premièrement, il faut que vous respectiez les règles de Presentation d'un message.

Deuxièmement, comme votre demande concerne un jeu en ligne, mais aperemment que l'aspect graphique d'une personne, je pense que votre demande peut trouver reponse.

Pour appuyer sur Entrer, voyez la commande Send()
Idem pour envoyer le texte avec la couleur choisie.

Quand vous aurez deja fait cette partie la du script, vous pourrez alors penser a creer la Gui.

Tim
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#3

Message par joker »

bon alors, j'ai donc fait la partie script des commandes,

Bleu :

Code : Tout sélectionner

send ( "{ENTER}" )
send ( "script couleur bleu (je ne l'écris pas car trop long)" )
send ( "{ENTER}" )
Vert :

Code : Tout sélectionner

send ( "{ENTER}" )
send ( "script couleur vert (je ne l'écris pas car trop long)" )
send ( "{ENTER}" )
Rouge :

Code : Tout sélectionner

send ( "{ENTER}" )
send ( "script couleur rouge (je ne l'écris pas car trop long)" )
send ( "{ENTER}" )
etc...

J'avais déja réalisé cette partie... d'ailleurs désolé de ne l'avoir pas mise !
C'est ensuite que je ne comprend pas comment relié ça a des boutons !

Genre quand j'appuie sur le bouton VERT sa lance ça :

Code : Tout sélectionner

send ( "{ENTER}" )
send ( "script couleur VERT (je ne l'écris pas car trop long)" )
send ( "{ENTER}" )
aussi, ça doit se faire sur world of warcraft sinon ça ne amrchera pas donc je pense qu'il faut insérer une ligne comme quoi c'est sous WOW...

j'ai besoin d'aide

PS : je vais desuite lire les règle de présentation !
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#4

Message par timmalos »

Un truc qui ressemble à ca ?
► Afficher le texte
Les wow.exe et les noms World of Warcraft sont a chagnés, j'ai mis au pif je n'aai pas wow d'installé sur ce Pc.
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#5

Message par joker »

pas mal, sauf que pour le lancement, au lieu qu'il ne se lance pas quand wow.exe n'est pas lancé, faudrait insérer un message d'erreur disant que wow.exe n'est pas lancé !
SanZos
Niveau 1
Niveau 1
Messages : 6
Enregistré le : ven. 14 nov. 2008 21:16
Localisation : Nantes
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#6

Message par SanZos »

Salut, il te suffit juste de mettre :

Code : Tout sélectionner

Func _verifwow()
    If ProcessExists("wow.exe") Then
        WinSetState("World Of Warcraft","",@SW_MAXIMIZE)
    Else
        MsgBox(4096, "Erreur", "World of Warcraft n'est pas lancer")
        Exit
    EndIF  
a la place de

Code : Tout sélectionner

Func _verifwow()
    If ProcessExists("wow.exe") Then
        WinSetState("World Of Warcraft","",@SW_MAXIMIZE)
    Else
        Exit
    EndIF  
et tu aura ton message d'erreur.
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#7

Message par joker »

Problème ! Erreur lorsque je met la macro dans le script !
► Afficher le texte
je pense que ça vient du fait que send ça ne colle pas un texte dans un champ ça l'écrit non ?
au pire faire en sorte que ça copie la macro dans le champs et ensuite sa met entrer, ça serai plus rapide en plus ?
c'est possible?
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#8

Message par timmalos »

Pas possible de copier la macro dans les champs vu que les champs sont dans le logiciel.

Il faut que vous essayez au minimum de faire votre script par vous meme, ce n'est pas sorcier de voir votre erreur !
Copier la ligne qui pose problème dans l'editeur Scite, et rien qu'avec la visualisation par couleurs vous voyez qu'il y a un problème !

La balise send marche comme ca :
Send("")

Dans ton script, tu veux envoyer un ", alors cela va e=influencer sur Send. Pour faire comme il faut, il faut remplacer ca :

Code : Tout sélectionner

send ( "/run if(not scm) then scm = SendChatMessage; end; function SendChatMessage(msg, type, lang, chan) scm("\124cff00B4FF\124Hitem:19:0:0:0:0:0:0:0\124h" ..msg.."\124h\124r", type, lang, chan);end;" )
Par ca:

Code : Tout sélectionner

send ( '/run if(not scm) then scm = SendChatMessage; end; function SendChatMessage(msg, type, lang, chan) scm("\124cff00B4FF\124Hitem:19:0:0:0:0:0:0:0\124h" ..msg.."\124h\124r", type, lang, chan);end;' )
Ou encore:

Code : Tout sélectionner

$msg = '/run if(not scm) then scm = SendChatMessage; end; function SendChatMessage(msg, type, lang, chan) scm("\124cff00B4FF\124Hitem:19:0:0:0:0:0:0:0\124h" ..msg.."\124h\124r", type, lang, chan);end;' 

Send($msg)
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#9

Message par joker »

Parfait j'ai reussi a faire toute la structure, néanmoins, petit hic !

et j'espère que vous aurez la patience pour moi... :p

Voilà, ça lance bien le script ! seulement ça le lance soit en boucle soit énormément de fois Oo

De plus, il faudrait que cela fonctionne que sur Wow.exe et non sur les autres programmes... faudrait que ça se lance directement sur wow
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#10

Message par jbnh »

Code : Tout sélectionner

 While 1
        Sleep(100)
    WEnd
fait boucler le script en boucle, supprime si tu veux qu'il s execute qu'une fois.

Normalement la ligne:

Code : Tout sélectionner

WinSetState("World Of Warcraft","",@SW_MAXIMIZE)
Active la fenetre wow donc ca devrait fonctionner que sur wow....
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#11

Message par joker »

bon j'ai tout réparé sa marche niquel, sauf petit problème dans mon script ! les fonctions il faudrait qu'elle s'enclenche que lorsque je suis sur la fenetre wow, car enfaite, j'appuie sa s'enclenche et le temps que j'ai appuyé et que je vais sur wow et bien la macro est deja passé ou est en train...

En gros il faudrait que la fonction démarre quand je suis sur la page wow et pas avant
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#12

Message par timmalos »

Rajoute Sleep() au debut du script. Et que diable faites des RECHERCHES sur le forum, vos questions sont basique et meriteraient que l'on close le sujet avec pour seule indication ce LIEN
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#13

Message par joker »

Mais stop !

omg ici c'est une demande de script la partie, je demande et voila, faut pas etre si méchant en me répondant, et surtout quand on ne sait pas de quoi on parle ;)

je connais très bien sleep et je suis pas débile sleep sert a faire un temps avant que le script se lance ! mais c'est pas ce que je demande... lis mon message avant et évite de me répondre un autre truc dans le genre je suis pas ton servant non plus.

J'ai peut etre l'air de "manqué de respect" mais bon quand on a a peine lu mon message et qu'on me répond un truc dans ce genre j'ai les nerf qui chauffe ;)
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#14

Message par jbnh »

En soi timmalos a raison, tu n'as qu'a mettre un sleep entre les deux fonctions qui te pose problème niveau temps
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#15

Message par joker »

c'est ce que j'ai fait pour controlé le temps mais bon, quand je vais sur msn... ça m'écris le script !

faudrait que ça s'enclenche et marche que lorsque je suis sur WOW.exe
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#16

Message par timmalos »

Code : Tout sélectionner

bon j'ai tout réparé sa marche niquel, sauf petit problème dans mon script ! les fonctions il faudrait qu'elle s'enclenche que lorsque je suis sur la fenetre wow, car enfaite, j'appuie sa s'enclenche et le temps que j'ai appuyé et que je vais sur wow et bien la macro est deja passé ou est en train...
 
Pour cette partie, sleep() correspond.
Après, si il faut que Wow soit lancé, on va encore utiliser Sleep. En soi, vous pouvez trouver la reponse avec la fonction recherche du forum. Vous etes bien dans la partie Demande de Scripts, mais je pense que vous serez heureux de faire votre script vous meme et de le comprendre au lieu de copier "bêtement" un script tout fait.
Quand je vous parle encore de la fonction Recherche, j'ai fait connexion avec votre precedante question ou la simple recherche avec le mot 'Boucle Infinie 'vous aurait donné des centaines de resultats... C'est pour cela que j'ai pensé que votre niveau de programmation etait faible et que la fonction recherche resoudrait vos problèmes pour le Sleep()
mais bon quand on a a peine lu mon message
Je t'assure que j'ai repondu en pleine connaissance de cause et que j'ai bien RELU ton message avant de te repondre. Pour moi Sleep() pouvait repondre a vos problèmes, et si vous connaissez, tant mieux, mais vous comprenez que si ce n'etait pas le cas la fonction recherche du forum vous suffisait emplement.
Maintenant, vous pouvez essayer ceci, et si ce n'est pas ce que vous voulez, j'ai bien lu votre demande, et je m'efforce d'y repondre au mieux. Pas la peine de s'echauffer :wink: Une petite precision et on vous postera quelque chose qui vous ira mieux...

Code : Tout sélectionner

While Not ProcessExists("wow.exe");On s'assure que WOW est lancé, sinoin on attend.
    Sleep(100)
WEnd
 
While Not BitAnd(Wingetstate("World Of Warcraft"),15);Maintenant, on attend que la fenetre existe, qu'elle soit active, visible, et selectionnable.tant qu'elle ne l'est pas on dort
    Sleep(100)
WEnd    
 
En effet, il faut bien se baser sur le sleep. Mais si vous voulez qu'il s'adapte, alors rajoutez des conditions comme je l'ait fait dans le script ci-dessus qui peut etre modifié a votre guise.

Si le script convient, vous pouvez le modifier comme ceci, plus compact et difficicle a comprendre:

Code : Tout sélectionner

While Not ProcessExists("wow.exe") Or Not BitAnd(Wingetstate("World Of Warcraft"),15)
    Sleep(100)
WEnd
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#17

Message par joker »

excuse moi alors.

j'ai dû mal m'exprimé !

Enfaite ça n'a aucun rapport avec le temps entre le bouton activé et le passage a la fenetre wow, ni pour le script qui assure que wow est bien lancé !

Enfaite ma demande c'était une fonction qui quand j'appuie sur le bouton action, ça passe directement sur al fenetre wow (SANS QUE CE SOIT MOI QUI LA SELECTIONNE) et ainsi le script peut se faire a l'aise !

J'ai relu mon message et j'avoue, ce n'étais pas claire, désolé, en revanche, je t'assure que je pense apprendre plus vite en recopiant, enfin... e force de recopié tu apprends très vite ;)
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#18

Message par timmalos »

Alors la ligne qu'on avait deja mise Devrait normalement marcher:

WinSetState("World Of Warcraft","",@SW_MAXIMIZE)

Avez vous verifier que :

:arrow: WOW se lance bien avec le processus wow.exe, j'avais mis ca au pirf
:arrow: La ligne WinsetState a Besoin du titre de la fenetre, pour l'obtenir utilisez AutoitWindows Info, et remplacer World Of Warcraft par le nom (javais encore mis ca au pif)

Ensuite, Essayez la ligne Winsetstate sans aucune condition, dans un nouveau script.au3, et voyez si ca marche tel quel, si oui, après on l'integrera dans votre script. Si ca ne marche pas, alors je n'ai aucune idée, comme c'est un jeu c'est peut etre special. En tout cas ca marche pour GuildWars.
joker
Niveau 2
Niveau 2
Messages : 18
Enregistré le : sam. 15 nov. 2008 14:48
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#19

Message par joker »

Ben voilà mon code maintenant :

Code : Tout sélectionner

Func _verifwow()
    If ProcessExists("wow.exe") Then
        WinSetState("World of Warcraft","",@SW_RESTORE)
    Else
        MsgBox(4096, "Erreur", "World of Warcraft n'est pas lancer")
        Exit
    EndIF  
EndFunc 

; ICI LES COULEURS PRIMAIRES !
Func bleu()
    _verifwow();fonction qui va verifier si WOW est lancé. Si il ne l'est pas, alors on ferme le script. Si il l'est, on le met en plein ecran.
    Sleep(1000)
    send ( "{ENTER}" )
    Sleep(1000)
    send ( '/run if(not scm) then scm = SendChatMessage; end; function SendChatMessage(msg, type, lang, chan) scm("\124cff0000FF\124Hitem:19:0:0:0:0:0:0:0\124h" ..msg.."\124h\124r", type, lang, chan);end;' )
    send ( "{ENTER}" )
    sleep(500)
    send ( "{ENTER}" )
    Sleep(500)
    send ( 'Vous écrivez dorénavant bleu' )
    send ( "{ENTER}" )
    Sleep(1000)
    WinSetState("World of Warcraft","",@SW_RESTORE)
    Sleep(1000)
EndFunc
mais cela ne fonctionne toujours pas, je précise que j'ai mit SW_RESTORE pour garder la même taille de fenetre !
Enfaite ça marche mais que au lancement du programme, jme retrouve sur la fenetre wow, mais ensuite non.

EDIT : je m'excuse encore... en effet, je viens de remarqué que cela marche que lorsque wow n'est pas en MODE FENETRE -_-" honte a moi, si je met pleine écran ça marche parfaitement je revient directement a wow.

Donc aussi dernier truc, j'ai inséré le codage pour copié un input dans un message sauf que ça me met une erreur !

Voici le codage :

Code : Tout sélectionner

; ICI LA COULEUR PERSONNALISE !
Func perso()
    Sleep(1000)
    send ( "{ENTER}" )
    Sleep(1000)
    $spammsg = GuiCtrlRead ($Input)
    Clipput ($spammsg)
    send ( '/run if(not scm) then scm = SendChatMessage; end; function SendChatMessage(msg, type, lang, chan) scm("\124cff^v\124Hitem:19:0:0:0:0:0:0:0\124h" ..msg.."\124h\124r", type, lang, chan);end;' )
    send ( "{ENTER}" )
    sleep(1000)
    send ( "{ENTER}" )
    Sleep(1000)
    send ( 'Vous écrivez dorénavant bleu' )
    send ( "{ENTER}" )
    Sleep(1000)
EndFunc
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Creation d'une Gui avec Commande Send()

#20

Message par timmalos »

Il nous faut ton code complet.
Répondre