Question
Je suis en train d'utiliser Autoit avec Ruby. Il y a des fonctions utilisateur dans Autoit que je besoin pour mon automatisation GUI comme l'accès à l'onglet de la fenêtre etc. Le problème est que, contrairement à des API autoit normales, je ne suis pas en mesure d'accéder aux UDFs du autoit de la poignée objet win32ole rubis pour AutoIt dll . Est-il possible d'accéder à ces UDFs dans mon code Ruby? Ce sont en fait des fonctions définies dans les scripts AutoIt et je pense que ce que je veux est pas possible. Je veux une certaine opinion de quelqu'un qui peut avoir essayé cela avant et est arrivé à une conclusion.
Merci et salutations, Anjali
La solution
Il ne peut se faire, selon le forum autoIt . Je suppose que vous devrez réécrire de l'UDF en Ruby.
Autres conseils
Réécrire les UDFs en Ruby est une solution simple. Cependant, ce n'est pas une solution dans tous les cas en raison de la quantité de travail. Il n'y a aucun moyen direct pour appeler des fonctions AutoIt de Ruby, parce qu'il n'y a aucun moyen que vous pouvez compiler AutoIt à un dll ou COM ou similaire.
Qu'est-ce que vous pouvez faire est Ressaisissez votre AutoIt UDFs pour permettre la communication interprocessus. Vous pouvez le faire via les paramètres de ligne de commande:
If $CmdLine[0] > 1 Then
Switch $CmdLine[1]
Case "/1"
Method1()
Case "/2"
Method2()
EndSwitch
EndIf
Func Method1()
ConsoleWrite("This is the 1st Method" & @CRLF)
EndFunc
Func Method2()
ConsoleWrite("This is the 2nd Method" & @CRLF)
EndFunc
Vous compilez le script ci-dessus comme CUI (cochez l'option dans le compilateur AutoIt) puis l'exécuter à partir de Ruby. Vous pouvez alors saisir la sortie via les flux standard. Vous pouvez également écrire la sortie de votre script dans un fichier sur le disque, puis utilisez Ruby pour lire le contenu du fichier.
Autres options pour communications non traditionnelles comprennent:
- MAILSLOTS: http://www.autoitscript.com/forum/topic/106710 -mailslot /
- _SendMessage: Laissez le script AutoIt envoyer un message à Windows une fenêtre créée en Ruby
- Création d'un serveur Telnet dans AutoIt, envoyer et recevoir des commandes via TCP: http://www.autoitscript.com/forum/topic/123713-simple-telnet-server-skeleton-with-authentication/
- serveur HTTP, si vous cherchez une communication plus d'apatride ou à partir du Web: Recherche AutoIT HTTP Server sur Google. Protection anti-spam pour les nouveaux utilisateurs ne me permet pas de poster le lien.
Les possibilités sont infinies. :) Ce message vous devriez commencer.