Ich mache einen Bot für ein Flash-Spiel, und ich habe herausgefunden, wie Sie alle AutoIt Funktionen in meinen C# -Code importieren.Senden von Nachrichten an ein Flash-Spiel mit C# und 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);
}
(Ich bin mir ziemlich sicher, dass das unkommentiert eines derjenige mit Griff und umgekehrt sein sollte, aber das funktioniert für Minesweeper.)
So ist es für Sweeper funktioniert und es nicht zu sein, benötigt das aktive Fenster. Wenn ich versuche, dass es mit meinem Flash-Spiel funktioniert, muss das Internet Explorer-Fenster aktiv sein. Ist das etwas, das Flash benötigt, oder gibt es etwas Zusätzliches, das ich tun könnte, damit es funktioniert, wenn das Spiel minimiert wird?
Dies muss nicht mit den AutoIt-Importen geschehen. Ich versuchte SendMessage von Benutzer32 an einem Punkt auch, aber das funktionierte überhaupt nicht für Flash Inhalt für mich.
ich das gerade getestet auf einer zufällige Webseite statt einer Flash-Website oder Sweeper und aus irgendeinem Grunde der Code funktioniert, wenn ich es aus dem Autoit Scripting-Programm ausführen, aber nicht von meinem C# Programm ...
20. Juni 2012: Ich bin ziemlich sicher, dass dies etwas mit der Art und Weise zu tun hat, wie der Griff passiert wird. Ich habe einige Tests mit dem Aufruf einer AutoIt-EXE-Datei durchgeführt und benutze das Handle, das ich aus dem C# -Code als Argument erhalte, ich muss dazu 0x
hinzufügen, und dann muss ich es innerhalb des AutoIt-Codes aus einer Zeichenkette umwandeln zu einem HWnd, also könnte das etwas sein, in welchem Fall ich nicht weiß, was zu tun ist, da die importierte Funktion auf einer Zeichenketteneingabe für das Handle beruht.
Wie haben Sie Autoit-Funktionen in C# exportiert? Ich bin nur Neugierig. –
http://www.lancelarsen.com/Blog/tabid/72/EntryId/48/AutoIt-C-Helper-Library.aspx Theres eine Website mit Ressourcen, wo jemand eine Klasse, die Funktionen aus der DLL-Bibliothek importiert gemacht hat. Aber ich denke, wenn Sie nur die Bibliothek einschließen, müssen Sie nicht unbedingt die Klasse verwenden, die er erstellt hat. Ich sage das, weil seine Helferklasse nicht alle Funktionen als Import enthält, Sie aber trotzdem auf alle Autoit-Methoden zugreifen können. –