Я делаю бот для флеш-игры, и я выяснил, как импортировать все функции AutoIt в мой код C#.Отправка сообщений во флеш-игру с C# и AutoIt
string title = "Minesweeper";
string full = auto.WinGetTitle(title,"");
string handle = auto.WinGetHandle(full, "");
if (auto.WinExists(full, "") == 1)
textBox1.Text = "window exists";
addressBox.Text = full;
for (int r = 1; r < 40; r++)
{
auto.ControlClick(full, "", "", "left", 2, r * 10, r * 10);
//auto.ControlClick(handle, "", "", "left", 2, r * 10, r * 10);
}
(Я довольно уверен, раскомментируйте один должен быть один с ручкой и наоборот, но это работает для Minesweeper.)
Так это работает для Сапер и не требует, чтобы это было активное окно. Когда я пытаюсь заставить его работать над моей Flash-игрой, для этого требуется окно Internet Explorer. Это что-то требует Flash или есть что-то дополнительное, что я мог бы сделать, чтобы заставить его работать, когда игра сводится к минимуму?
Этого не нужно делать с использованием импорта AutoIt. Я попробовал SendMessage от user32 в какой-то момент, но это совсем не работало для Flash-контента.
Я просто проверил это на случайном сайте вместо флэш-сайта или Сапер и по какой-то причине код работает, если я исполню ее из программы сценариев AutoIt, но не из моей программы C# ...
20 июня 2012 г.: Я уверен, что это связано с тем, как передается ручка. Я провел несколько тестов с вызовом файла AutoIt EXE и с помощью дескриптора, который я получаю из кода C# в качестве аргумента, я должен добавить к нему 0x
, а также в коде AutoIt мне нужно отбросить его из строки к HWnd, так что это может быть что-то, и в этом случае я не знаю, что делать, поскольку импортированная функция использует строковый ввод для дескриптора.
Как вы экспортировали функции autoit в C#? Мне просто интересно. –
http://www.lancelarsen.com/Blog/tabid/72/EntryId/48/AutoIt-C-Helper-Library.aspx Theres сайт с ресурсами, где кто-то сделал класс, импортирующий функции из библиотеки DLL. Но я думаю, что если вы просто включите библиотеку, вам необязательно использовать этот класс, который он сделал. Я говорю, что, поскольку его вспомогательный класс не включает все функции в качестве импорта, но вы в любом случае можете получить доступ ко всем методам аутов. –