3

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

4

2 回答 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 功能,相信我已经尝试过了。

于 2009-05-09T05:31:18.587 回答
1

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

于 2009-12-13T15:17:04.620 回答