Pregunta

Estoy tratando de automatizar algunas cosas en un juego flash que se ejecuta en un control de navegador web en mi programa C #. Utilizando el dll sendmessage de user32, he podido hacer clic en las coordenadas de páginas normales como google, pero no funciona en contenido flash. ¿Alguna forma de hacer esto? Además, no puede ser detectable en el juego flash. Tengo uno que funciona en autoit pero me gustaría reescribirlo en c # y hacer que funcione al mínimo.

¿Fue útil?

Solución

¿Por qué no simplemente llamar a su script Autoit / Autohotkey desde su programa C # usando la clase System.Diagnostics.Process?

ProcessStartInfo psi = new ProcessStartInfo("your_script.ahk");
psi.CreateNoWindow = true;

Process procScript = Process.Start(psi);
procScript.WaitForExit();

Observe CreateNoWindow = true para asegurarse de que se ejecuta oculto, y WaitForExit (), para hacer que su código espere a que vuelva el proceso.

AutoIt y AutoHotkey tienen algunos comandos de automatización muy potentes que se han perfeccionado a lo largo de los años. Es muy difícil reproducir una funcionalidad C # / .NET similar que sea igual de confiable, créanme que lo he intentado.

Otros consejos

Echa un vistazo a WatiN. Potente automatización del navegador, compatible con C #:

http://watin.sourceforge.net/

Usar SendMessage o PostMessage funcionará. Debe enviar 3 mensajes, WM_MOUSEMOVE, luego WM_MOUSEDOWN, luego WM_MOUSEUP. WM_MOUSEMOVE debe indicar una ubicación diferente de WM_MOUSEDOWN y WM_MOUSEUP. WM_MOUSEDOWN y WM_MOUSEUP deben estar en la misma ubicación. Funciona para mí.

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