.NET webbrowser控件自动化

时间:2009-05-09 05:06:59

标签: c# flash automation autoit sendmessage

我正在尝试在我的C#程序中的webbrowser控件中运行的flash游戏上自动化一些东西。使用user32的sendmessage dll,我已经能够点击常规页面上的坐标,例如谷歌,但它不适用于Flash内容。我有什么方法可以做到这一点? 它也无法被flash游戏检测到。我在autoit中有一个工作,但是我想用c#重写它并使它最小化。

3 个答案:

答案 0 :(得分:3)

为什么不使用System.Diagnostics.Process类从C#程序调用Autoit / Autohotkey脚本?

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

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

注意CreateNoWindow = true以确保它运行隐藏,并注意WaitForExit(),以使代码等待进程返回。

AutoIt和AutoHotkey具有一些非常强大的自动化命令,这些命令经过多年的改进。很难再现类似的C#/ .NET功能同样可靠,相信我已经尝试过了。

答案 1 :(得分:2)

查看WatiN。强大的浏览器自动化功能,与C#兼容:

http://watin.sourceforge.net/

答案 2 :(得分:1)

使用SendMessage或PostMessage将起作用。您需要发送3条消息,WM_MOUSEMOVE,然后发送WM_MOUSEDOWN,然后发送WM_MOUSEUP。 WM_MOUSEMOVE必须指示与WM_MOUSEDOWN和WM_MOUSEUP不同的位置。 WM_MOUSEDOWN和WM_MOUSEUP应位于同一位置。适合我。