[R] Script Autoit pour écrire du BBcode.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Ctrl-Alt-Suppr
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 07 août 2007 16:37
Status : Hors ligne

[R] Script Autoit pour écrire du BBcode.

#1

Message par Ctrl-Alt-Suppr » mar. 07 août 2007 17:17

Slt,

Afin de me simplifier la vie sur les forums ... j'aimerais utiliser AutoIT pour écrire du BBCode.

Exemple, en tapant " Touche.Windows.de.droite + C " ça écrirait instantanément {Color}
(je pense qu'en utilisant 6~7 raccourcis, ça irait plus vite que par des plugins, ou un éventuel presse-papier sophistiqué).

J'ai essayé MacroGamer, ça fonctionne mais je le trouve moins "optimisé" qu'AutoIT. Il faut 2 secondes pour taper un "mot" du langage BBCode...
Mais n'y arrivant pas sous AutoIT, je me permets de poser une question (toute bête ... je l'avoue)


Question :
Comment fait-on pour exiger 2 touches avec la commande : If _IsPressed("xxxxxx") Then ?

XcessiV
Niveau 4
Niveau 4
Messages : 53
Enregistré le : mar. 07 août 2007 13:05
Localisation : Grenoble
Status : Hors ligne

#2

Message par XcessiV » mar. 07 août 2007 17:25

je suis un novice sur AutoIt, mais est ce que la commande suivant ne passerai pas ? :

Code : Tout sélectionner

If _IsPressed("xxxxxx") and If _IsPressed("xxxxxx") Then
Désolé si je sors des aneries ;)

Cordialement, XcessiV

Avatar du membre
sylvanie
Modérateur
Modérateur
Messages : 1544
Enregistré le : jeu. 26 juil. 2007 20:31
Localisation : Paris
Status : Hors ligne

#3

Message par sylvanie » mar. 07 août 2007 21:01

XcessiV a écrit :je suis un novice sur AutoIt, mais est ce que la commande suivant ne passerai pas ? :

Code : Tout sélectionner

If _IsPressed("xxxxxx") and If _IsPressed("xxxxxx") Then
Désolé si je sors des aneries ;)

Cordialement, XcessiV
C'est en forgeant qu'on devient scripteur ...

l'idée est bonne, mais le pb est que dans l'evaluation quand l'une va être vraie, l'autre sera forcément fausse au même moment, donc NOK
soit on les déclenche en cascade de if avec des while pour vérifier que la première touche est tjrs appuyée (tiens, ça me rappelle qq chose ...)
soit on passe plutôt vers un hotkeyset (mieux à mon goût quand on combine des touches) :

Code : Tout sélectionner

HotKeySet("#c","color") ; #c c'est windows+c et on y associe la fonction color définie plus bas

while 1 
    Sleep(100 )
WEnd

Func color()
    send("color")
EndFunc
 
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.

XcessiV
Niveau 4
Niveau 4
Messages : 53
Enregistré le : mar. 07 août 2007 13:05
Localisation : Grenoble
Status : Hors ligne

#4

Message par XcessiV » mar. 07 août 2007 21:06

C'est pas bête :)

Mais je ne comprends pas pourquoi ma proposition est fausse... :(
Il ne comprends pas quand on reste appuyé sur deux touches ?

Avatar du membre
sylvanie
Modérateur
Modérateur
Messages : 1544
Enregistré le : jeu. 26 juil. 2007 20:31
Localisation : Paris
Status : Hors ligne

#5

Message par sylvanie » mar. 07 août 2007 21:55

à un instant donné, oui et non.
il faut impérativement embarqué ce teste dans un while pour que ça marche. Remarque, tu me diras effectivement que c'est ce qu'on fait depuis le début ...
comme ceci ta proposition fonctionne :

Code : Tout sélectionner


#Include <Misc.au3>
While 1
If _IsPressed("41") and _IsPressed("42") Then
    ConsoleWrite("OK"&@CRLF)
    exit 0
EndIf
WEnd
 
là tu à tout ton temps pour présser à la fois a puis b
L'inconvéniant de cette méthode est que si on veut faire plusieur combinaisons (a et b, win+c ... ), on inclut tous ces test dans un while et on passe son tps à tester.
Ici le hotkeyset me semble plus raisonnable, mais attention aux contraintes, toutes les combinaisons de touches ne sont pas permises (cf aide)
Modifié en dernier par sylvanie le mar. 07 août 2007 22:18, modifié 1 fois.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.

Ctrl-Alt-Suppr
Niveau 1
Niveau 1
Messages : 4
Enregistré le : mar. 07 août 2007 16:37
Status : Hors ligne

#6

Message par Ctrl-Alt-Suppr » sam. 22 sept. 2007 14:40

Un mois après, me revoilà ...
Je vous remercie pour ces différentes remarques, mais (soyons honnète ...) je suis toujours aussi nul.


Je reprécise que mon objectif est de taper du texte, et une fois fini, de lancer un script pour gagner du temps en mise en forme BBCode

Exemples :
b = [ B]
shift + b = [ /B]
r =
shift + r = [ /Color]



HotKey semble être plus adaptée ... Sauf que si j'utilise la touche windows, la seule acceptée par cette commande, ça affiche ma barre des tâches.

Code : Tout sélectionner

HotKeySet("#g","gras")
while 1 
   Sleep(100 ) 
WEnd 
Func gras() 
   send("[b]") 
EndFunc
Donc j'ai essayé avec l'autre méthode.
Problème, je ne vois vraiment pas ce que viennent faire là dedans le ConsoleWrite et le exit.
Et quand j'utilise seulement Send, j'ai un autre souci ... les lettres servant au raccourcis sont tapées :

Code : Tout sélectionner

#Include <Misc.au3> 
While 1 
If _IsPressed("41") and _IsPressed("42") Then 
Send("ok ça fonctionne")
EndIf 
WEnd
En gros, avec ce script, A + B tape automatiquement
abok ça fonctionne


Donc voilà ... toute suggestion est la bienvenue.
En fait mon souci, c'est surtout que sous Firefox, les boutons BBCode des forums fonctionnent mal et renvoient l'affichage au début du message. Et que pour compenser, il existe bien des modules complétementaires, mais accessibles via clic droit, un menu, etc etc ...
Bref, c'est fastidieux.

Donc si vous avez une solution, je suis preneur. (même si elle ne passe pas par AutoIT, vous connaissez p'tet un moyen de résoudre ce problème ...)

D'avance, merci.

Avatar du membre
sylvanie
Modérateur
Modérateur
Messages : 1544
Enregistré le : jeu. 26 juil. 2007 20:31
Localisation : Paris
Status : Hors ligne

#7

Message par sylvanie » sam. 22 sept. 2007 18:42

Ctrl-Alt-Suppr a écrit : HotKey semble être plus adaptée ... Sauf que si j'utilise la touche windows, la seule acceptée par cette commande, ça affiche ma barre des tâches.
.
effectivement HotKeySet est plus adaptée, mais contrairement à ce que tu viens de dire, il n'y a pas que la touche windows qui soit acceptée, tu as alt (!) control (^) et bine d'autres qui peuvent être utilisées
si tu remplaces #g par ^g, ça marchera avec ctrl+g
Ctrl-Alt-Suppr a écrit : Donc j'ai essayé avec l'autre méthode.
Problème, je ne vois vraiment pas ce que viennent faire là dedans le ConsoleWrite et le exit.
consolewrite écrit le message dans la console de ton éditeur en cours (si il y en a une, cas de scite et pspad) puis exit sort du script
(ça c'est juste pour terminer le script à des fins de démo)

dans un premier temps, essaie de reprendre hotsetkey avec d'autres combinaisons que win+...

sinon faudra neutraliser les touches pour qu'elles ne s'affiche pas et les réactiver quand tu voudra t'en servir (si tu optes quand même pour cette méthode j'expliquerai alors comment faire à ce moment là ...)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.

Répondre