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