.NET WebBrowser控件自动化

3

我正在尝试在我的C#程序中自动化一些运行在WebBrowser控件中的Flash游戏。使用user32的sendmessage dll,我已经能够在常规页面(如谷歌)上点击坐标,但在Flash内容上无法工作。有什么方法可以做到这一点吗?

此外,它不能被Flash游戏检测到。我已经在autoit中有一个可用的解决方案,但我想用C#重写它并使其在最小化状态下工作。


这比我接受的答案更有帮助,实际上是关于AutoIt-C#辅助库的。http://www.lancelarsen.com/Blog/tabid/72/EntryId/48/AutoIt-C-Helper-Library.aspx - Jean-Bernard Pellerin
1
@Jean-BernardPellerin的失效链接的存档版本:https://web.archive.org/web/20110311200800/http://www.lancelarsen.com/Blog/tabid/72/EntryId/48/AutoIt-C-Helper-Library.aspx - TylerH
2个回答

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

可以使用 SendMessage 或 PostMessage。您需要发送 3 条消息:WM_MOUSEMOVE、然后是 WM_MOUSEDOWN,最后是 WM_MOUSEUP。WM_MOUSEMOVE 必须指示与 WM_MOUSEDOWN 和 WM_MOUSEUP 不同的位置。WM_MOUSEDOWN 和 WM_MOUSEUP 应该在同一个位置上。对我而言有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接