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