.Чистая автоматизации управления WebBrowser


Я пытаюсь автоматизировать некоторые вещи в флеш-игре, запущенной в веб-браузере управления в моей программе C#. Используя библиотеку dll SendMessage от user32, я мог нажимать на координаты на обычных страницах, таких как google, но она не работает на флэш-контенте. Любыми способами я могу это сделать? Кроме того, он не может быть обнаружен во флэш-игре. У меня есть рабочий в autoit, но я хотел бы переписать его в c# и сделать его работу минимизированной.

3 3

3 ответа:

Почему бы просто не вызвать скрипт Autoit/Autohotkey из вашей программы C#, используя систему.Диагностика.Класс процесса?

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

Process procScript = Process.Start(psi);
procScript.WaitForExit();
Обратите внимание на CreateNoWindow=true, чтобы гарантировать, что он работает скрыто, и WaitForExit (), чтобы заставить ваш код ждать возвращения процесса.

AutoIt и AutoHotkey имеют некоторые очень мощные команды автоматизации, которые были усовершенствованы в течение многих лет. Очень трудно воспроизвести подобную функциональность C# / .NET, которая так же надежна, поверьте мне, я пробовал.

Проверьте WatiN. Мощная автоматизация браузера, совместимая с C#:

Http://watin.sourceforge.net/

Использование SendMessage или PostMessage будет работать. Вам нужно отправить 3 сообщения, WM_MOUSEMOVE, затем WM_MOUSEDOWN, затем WM_MOUSEUP. WM_MOUSEMOVE должен указывать местоположение, отличное от WM_MOUSEDOWN и WM_MOUSEUP. WM_MOUSEDOWN и WM_MOUSEUP должны находиться в одном месте. Работать на меня.