Pergunta

Eu estou tentando automatizar algumas coisas em um jogo flash em execução em um controle webbrowser no meu programa C #. Usando sendmessage das user32 dll Eu tenho sido capaz de clicar nas coordenadas nas páginas regulares, como google, mas ele não funciona no conteúdo Flash. Todas as maneiras que eu posso fazer isso? Também não pode ser detectável para o jogo flash. Eu tenho um trabalho em autoit mas eu gostaria de reescrevê-lo em C # e fazê-lo funcionar minimizado.

Foi útil?

Solução

Por que não apenas chamar seu script Autoit / Autohotkey de seu programa C # usando a classe System.Diagnostics.Process?

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

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

Observe o CreateNoWindow = true para garantir que ele corre escondido, eo WaitForExit (), para tornar a sua espera código para o processo de retorno.

AutoIt e AutoHotkey tem alguns comandos de automação muito poderosas que foram refinados ao longo dos anos. É muito difícil de reproduzir C # /. NET funcionalidade semelhante que é tão confiável, acredite em mim eu tentei.

Outras dicas

Confira WatiN. automação navegador poderoso, compatível com C #:

http://watin.sourceforge.net/

Usando SendMessage ou PostMessage vai funcionar. Você precisa enviar 3 mensagens, WM_MOUSEMOVE, então WM_MOUSEDOWN, então WM_MOUSEUP. O WM_MOUSEMOVE deve indicar um local diferente do WM_MOUSEDOWN e WM_MOUSEUP. WM_MOUSEDOWN e WM_MOUSEUP deve ser no mesmo local. Funciona para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top