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

War es hilfreich?

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:

Die Möglichkeiten sind endlos. :) Dieser Beitrag soll Ihnen den Einstieg.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top