Frage
Ich versuche Autoit mit Ruby zu verwenden. Es gibt einige benutzerdefinierten Funktionen in Autoit, die ich für meine Gui Automatisierung wie der Fenstertab Zugang etc. Das Problem muß, ist, dass im Gegensatz zu normaler autoit APIs Ich bin nicht in der Lage, die UDF des autoit vom Rubin WIN32OLE Objekt-Handle für den Zugriff für autoit dll . Gibt es eine Möglichkeit, diese benutzerdefinierten Funktionen in meinem Ruby-Code für den Zugriff auf? Dies sind tatsächlich einige Funktionen definiert in autoit Skripte und ich denke, dass das, was ich will, ist nicht möglich. Ich mag einige Meinung von jemandem, der diese vor versucht haben kann und kam zu einem gewissen Abschluss.
Danke und Grüße, Anjali
Lösung
Es kann nicht getan werden, nach dem autoit Forum . Ich denke, Sie werden die UDF in Ruby neu zu schreiben haben.
Andere Tipps
Sie die benutzerdefinierten Funktionen in Ruby Umschreiben ist eine einfache Lösung. Das ist jedoch keine Lösung in allen Fällen aufgrund der Menge der Arbeit beteiligt. Es gibt keinen direkten Weg AutoIt Funktionen von Ruby zu nennen, weil es keine Möglichkeit gibt, dass man AutoIt auf ein DLL oder COM oder ähnlichen zusammenstellen kann.
Was Sie tun können, ist Ihre AutoIt UDF umschreiben Interprozess-Kommunikation zu ermöglichen. Sie können entweder dies über Kommandozeilenparameter:
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
Sie kompilieren Sie das Skript als CUI (überprüfen Sie die Option im AutoIt-Compiler) und dann von Ruby laufen. Anschließend können Sie die Ausgabe über Standard-Streams greifen. Alternativ können Sie die Ausgabe des Skripts in eine Datei auf die Festplatte schreiben, dann Ruby-verwenden Sie den Inhalt der Datei zu lesen.
Weitere Optionen für mehr nicht-traditionelle Interprozess-Kommunikation sind:
- Mailslots: http://www.autoitscript.com/forum/topic/106710 -mailslot /
- _SendMessage: Lassen Sie das AutoIt-Skript ein Fenster Nachricht an ein Fenster in Ruby erstellt senden
- einen Telnet-Server in AutoIt Erstellen, Senden und Empfangen von Befehlen über TCP: http://www.autoitscript.com/forum/topic/123713-simple-telnet-server-skeleton-with-authentication/
- HTTP-Server, wenn Sie sich für eine stateless Kommunikation suchen oder aus dem Internet: Suche AutoIT HTTP Server auf Google. Spam-Schutz für neue Benutzer verhindert mich zu veröffentlichen Sie den Link.
Die Möglichkeiten sind endlos. :) Dieser Beitrag soll Ihnen den Einstieg.