Page 1 sur 2
[..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 14:58
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?
Re: Robot qui parle
Posté : sam. 15 nov. 2008 16:18
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
Re: [..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 18:19
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 !
Re: [..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 18:31
par timmalos
Un truc qui ressemble à ca ?
► Afficher le texte
Code : Tout sélectionner
_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.
_gui()
Func _gui()
Opt("GUIOnEventMode", 1)
$gui = Guicreate("")
GUISetOnEvent($GUI_EVENT_CLOSE, "quitter")
$button1 = GUICtrlCreateButton("Bleu",1,1)
GUICtrlSetOnEvent(-1, "bleu")
$button2 = GUICtrlCreateButton("Rouge",1,30)
GUICtrlSetOnEvent(-1, "rouge")
$button3 = GUICtrlCreateButton("Vert",1,60)
GUICtrlSetOnEvent(-1, "vert")
GUISetState()
While 1
Sleep(100)
WEnd
EndFunc
Func _verifwow()
If ProcessExists("wow.exe") Then
WinSetState("World Of Warcraft","",@SW_MAXIMIZE)
Else
Exit
EndIF
EndFunc
Func bleu()
send ( "{ENTER}" )
send ( "script couleur bleu (je ne l'écris pas car trop long)" )
send ( "{ENTER}" )
EndFunc
Func vert()
send ( "{ENTER}" )
send ( "script couleur bleu (je ne l'écris pas car trop long)" )
send ( "{ENTER}" )
EndFunc
Func rouge()
send ( "{ENTER}" )
send ( "script couleur bleu (je ne l'écris pas car trop long)" )
send ( "{ENTER}" )
EndFunc
Func quitter()
Exit
EndFunc
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.
Re: [..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 19:14
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é !
Re: [..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 19:41
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.
Re: [..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 21:13
par joker
Problème ! Erreur lorsque je met la macro dans le script !
► Afficher le texte
Code : Tout sélectionner
_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.
_gui()
Func _gui()
Opt("GUIOnEventMode", 1)
$gui = Guicreate("Modificateur de couleurs")
$button1 = GUICtrlCreateButton("Bleu",1,1)
GUICtrlSetOnEvent(-1, "bleu")
$button2 = GUICtrlCreateButton("Rouge",1,30)
GUICtrlSetOnEvent(-1, "rouge")
$button3 = GUICtrlCreateButton("Vert",1,60)
GUICtrlSetOnEvent(-1, "vert")
GUISetState()
While 1
Sleep(100)
WEnd
EndFunc
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
EndFunc
Func bleu()
send ( "{ENTER}" )
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;" )
send ( "{ENTER}" )
EndFunc
Func vert()
send ( "{ENTER}" )
send ( "/run if(not scm) then scm = SendChatMessage; end; function SendChatMessage(msg, type, lang, chan) scm("\124cff66FF00\124Hitem:19:0:0:0:0:0:0:0\124h" ..msg.."\124h\124r", type, lang, chan);end;" )
send ( "{ENTER}" )
EndFunc
Func rouge()
send ( "{ENTER}" )
send ( "/run if(not scm) then scm = SendChatMessage; end; function SendChatMessage(msg, type, lang, chan) scm("\124cffD93F23\124Hitem:19:0:0:0:0:0:0:0\124h" ..msg.."\124h\124r", type, lang, chan);end;" )
send ( "{ENTER}" )
EndFunc
Func quitter()
Exit
EndFunc
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?
Re: [..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 21:22
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)
Re: [..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 22:15
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
Re: [..] Creation d'une Gui avec Commande Send()
Posté : sam. 15 nov. 2008 23:02
par jbnh
fait boucler le script en boucle, supprime si tu veux qu'il s execute qu'une fois.
Normalement la ligne:
Active la fenetre wow donc ca devrait fonctionner que sur wow....
Re: [..] Creation d'une Gui avec Commande Send()
Posté : dim. 16 nov. 2008 19:25
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
Re: [..] Creation d'une Gui avec Commande Send()
Posté : lun. 17 nov. 2008 14:28
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
Re: [..] Creation d'une Gui avec Commande Send()
Posté : lun. 17 nov. 2008 18:23
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

Re: [..] Creation d'une Gui avec Commande Send()
Posté : lun. 17 nov. 2008 18:53
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
Re: [..] Creation d'une Gui avec Commande Send()
Posté : lun. 17 nov. 2008 19:00
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
Re: [..] Creation d'une Gui avec Commande Send()
Posté : lun. 17 nov. 2008 19:18
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

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
Re: [..] Creation d'une Gui avec Commande Send()
Posté : lun. 17 nov. 2008 20:24
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

Re: [..] Creation d'une Gui avec Commande Send()
Posté : lun. 17 nov. 2008 20:35
par timmalos
Alors la ligne qu'on avait deja mise Devrait normalement marcher:
WinSetState("World Of Warcraft","",@SW_MAXIMIZE)
Avez vous verifier que :

WOW se lance bien avec le processus wow.exe, j'avais mis ca au pirf

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.
Re: [..] Creation d'une Gui avec Commande Send()
Posté : lun. 17 nov. 2008 21:09
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
Re: [..] Creation d'une Gui avec Commande Send()
Posté : mar. 18 nov. 2008 20:16
par timmalos
Il nous faut ton code complet.