Pregunta

Estoy tratando de utilizar AutoIt con Ruby. Hay algunas funciones definidas por el usuario en AutoIt que necesito para mi automatización Gui como el acceso a la pestaña de ventana, etc. El problema es que a diferencia de las API de AutoIt normales no soy capaz de acceder a las UDF del autoit desde el controlador de objetos win32ole rubí para autoit DLL . ¿Hay alguna manera de acceder a estas UDF en mi código de Ruby? Estas son en realidad algunas de las funciones definidas en los scripts de AutoIt y creo que lo que yo quiero no es posible. Quiero un poco de la opinión de alguien que pudo haber intentado esto antes y llegó a una conclusión.

Gracias y saludos, Anjali

¿Fue útil?

Solución

No se puede hacer, de acuerdo con la foro autoit . Supongo que tendrá que volver a escribir la UDF en Ruby.

Otros consejos

Reescribiendo las UDF en Ruby es una solución simple. Sin embargo, esto no es una solución en todos los casos debido a la cantidad de trabajo necesario. No hay manera directa para llamar a funciones de AutoIt desde Ruby, porque no hay manera de que se puede compilar AutoIt a un DLL o COM o similar.

Lo que puede hacer es volver a escribir sus UDF AutoIt para permitir la comunicación entre procesos. Usted puede hacer ya sea esta a través de parámetros de línea de comandos:

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

compilar la secuencia de comandos como un CUI (marque la opción en el compilador AutoIt) y luego se ejecuta desde Ruby. A continuación, puede tomar la salida a través de flujos estándares. Alternativamente, se puede escribir la salida de la secuencia de comandos en un archivo en el disco, a continuación, utilizar Ruby a leer el contenido del archivo.

Otras opciones para una comunicación más no tradicional entre procesos incluyen:

Las posibilidades son infinitas. :) Este post debería empezar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top