c# flash bots minimized

Enviar mensajes a un juego Flash con C#y AutoIt



bots minimized (2)

Asegúrese de ejecutar su programa C # como administrador. Esta es la única diferencia que puedo ver para que un método funcione y el otro no.

Estoy haciendo un bot para un juego Flash, y he descubierto cómo importar todas las funciones de AutoIt en mi código C #.

string title = "Minesweeper"; string full = auto.WinGetTitle(title,""); string handle = auto.WinGetHandle(full, ""); if (auto.WinExists(full, "") == 1) textBox1.Text = "window exists"; addressBox.Text = full; for (int r = 1; r < 40; r++) { auto.ControlClick(full, "", "", "left", 2, r * 10, r * 10); //auto.ControlClick(handle, "", "", "left", 2, r * 10, r * 10); }

(Estoy bastante seguro de que el que no está comentado debe ser el que tiene handle y viceversa, pero esto funciona para Minesweeper ).

Así que funciona para Minesweeper y no requiere que sea la ventana activa. Cuando trato de hacerlo funcionar en mi juego Flash, se requiere que la ventana de Internet Explorer sea la activa. ¿Esto es algo que requiere Flash o hay algo adicional que podría hacer para que funcione cuando el juego se minimiza?

Esto no tiene que hacerse usando las importaciones de AutoIt. Probé SendMessage desde user32 en un punto también, pero eso no funcionó para el contenido de Flash en absoluto para mí.

Acabo de probar esto en un sitio web al azar en lugar de un sitio Flash o Buscaminas y por alguna razón el código funciona si lo ejecuto desde el programa de scripting Autoit, pero no desde mi programa C # ...

20 de junio de 2012 : estoy bastante seguro de que esto tiene algo que ver con la forma en que se pasa el mango. He hecho algunas pruebas llamando a un archivo EXE de AutoIt y usando el identificador que obtengo del código C # como argumento, tengo que agregarle un 0x , y también dentro del código AutoIt tengo que convertirlo de una cadena a un HWnd, por lo que podría ser algo, en cuyo caso no sé qué hacer ya que la función importada se basa en una entrada de cadena para el manejador.


Algo que puede querer tratar de descartar el manejo de ventanas y problemas de manejo de variables. No debería ser necesario utilizar WinGetTitle para que el título de la ventana "Minesweeper" funcione correctamente. De acuerdo con mi herramienta AutoIt v3 Window Info en Windows 7, el título y la clase de la ventana Minesweeper son ambos Minesweeper. Tan difícil codificación

auto.ControlClick ("[TITLE: Minesweeper; CLASS: Buscaminas]," "," "," izquierda ", 2, r * 10, r * 10);

Podría funcionar. Para obtener más información sobre cómo funciona, consulte Descripciones de las ventanas avanzadas en el archivo de ayuda de AutoIt. Si esto todavía no funciona, busque WinTitleMatchMode en el archivo de ayuda. Le permite establecer algunas reglas de indulgencia en la coincidencia de títulos de ventanas que podrían hacer esto más fácil para usted.

AutoIt X es la versión de control de DLL / COM de AutoIt, así es como agregaría AuotIt a cualquier idioma que tenga compatibilidad con DLL / COM. En caso de que alguien más se preguntara cómo usaría AutoIt en C # . Desafortunadamente, AutoIt X a menudo se queda atrás en el desarrollo y las pruebas del idioma principal. Aunque no tiene ninguna razón para pensar que su problema es causado por un error que acaba de dar algunos antecedentes sobre el proyecto AutoItX. Si aún no lo ha hecho, debe publicar una copia de esta pregunta en el foro de Ayuda y soporte de ActiveX / COM (AutoItX) . Una de las mejores cosas de AutoIt en mi experiencia a lo largo de los años es la comunidad (que no se ha movido mucho aquí). Esa sección particular del foro es frecuentada por algunos de los desarrolladores del lenguaje que estarían encantados de ayudar.

En cuanto a su nota del 20 de junio , AutoIt trata todas las variables como cadenas hasta que detecta que es algo especial. No sabe que un valor es hexadecimal a menos que comience con el 0x que mencionaste. Esto me ha causado todo tipo de problemas extraños en el pasado. En varias ocasiones tuve que agregar cero a una variable para que AutoIt la evaluara correctamente después. Esto no ocurre a menudo con AutoIt3, sino solo algo a tener en cuenta.

Si necesita un código de referencia de AutoIt, muchos miembros del foro de AutoIt han creado los robots de Buscaminas para que pueda verificar y, posiblemente, ver algo útil.