Вопрос

Я пытаюсь автоматизировать некоторые вещи во флеш-игре, запущенной в элементе управления 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#:

http://watin.sourceforge.net/

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top