.Чистая автоматизации управления WebBrowser
Я пытаюсь автоматизировать некоторые вещи в флеш-игре, запущенной в веб-браузере управления в моей программе C#. Используя библиотеку dll SendMessage от user32, я мог нажимать на координаты на обычных страницах, таких как google, но она не работает на флэш-контенте. Любыми способами я могу это сделать? Кроме того, он не может быть обнаружен во флэш-игре. У меня есть рабочий в autoit, но я хотел бы переписать его в c# и сделать его работу минимизированной.
3 ответа:
Почему бы просто не вызвать скрипт Autoit/Autohotkey из вашей программы C#, используя систему.Диагностика.Класс процесса?
Обратите внимание на CreateNoWindow=true, чтобы гарантировать, что он работает скрыто, и WaitForExit (), чтобы заставить ваш код ждать возвращения процесса.ProcessStartInfo psi = new ProcessStartInfo("your_script.ahk"); psi.CreateNoWindow = true; Process procScript = Process.Start(psi); procScript.WaitForExit();
AutoIt и AutoHotkey имеют некоторые очень мощные команды автоматизации, которые были усовершенствованы в течение многих лет. Очень трудно воспроизвести подобную функциональность C# / .NET, которая так же надежна, поверьте мне, я пробовал.
Использование SendMessage или PostMessage будет работать. Вам нужно отправить 3 сообщения, WM_MOUSEMOVE, затем WM_MOUSEDOWN, затем WM_MOUSEUP. WM_MOUSEMOVE должен указывать местоположение, отличное от WM_MOUSEDOWN и WM_MOUSEUP. WM_MOUSEDOWN и WM_MOUSEUP должны находиться в одном месте. Работать на меня.