Je crée un bot pour un jeu Flash, et j'ai compris comment importer toutes les fonctions AutoIt dans mon code C#.Envoyer des messages à un jeu Flash avec C# et 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);
}
(je suis sûr que celui décommentée doit être celui avec poignée et vice versa, mais cela fonctionne pour Minesweeper.)
Il fonctionne pour Démineur et ne nécessite pas d'être la fenêtre active. Lorsque j'essaie de le faire fonctionner sur mon jeu Flash, la fenêtre Internet Explorer doit être active. Est-ce quelque chose que Flash a besoin ou y a-t-il quelque chose de plus que je pourrais faire pour le faire fonctionner quand le jeu est minimisé?
Cela ne doit pas être fait en utilisant les importations AutoIt. J'ai essayé SendMessage de user32 à un moment également, mais cela n'a pas fonctionné pour le contenu instantané du tout pour moi.
Je viens de tester cela sur un site au hasard au lieu d'un site Flash ou Démineur et pour une raison quelconque le code fonctionne si je l'exécute à partir du programme de script Autoit, mais pas de mon programme C# ...
June 20th, 2012: Je suis sûr que cela a quelque chose à voir avec la façon dont le manche est passé. J'ai fait quelques tests avec l'appel d'un fichier AutoIt EXE et en utilisant le handle du code C#, je dois lui ajouter un 0x
, et puis dans le code AutoIt je dois le transtyper à partir d'une chaîne à un HWnd, ce qui pourrait être quelque chose, auquel cas je ne sais pas quoi faire puisque la fonction importée repose sur une entrée de chaîne pour le handle.
Comment avez-vous exporté les fonctions autoit vers C#? Je suis juste curieux. –
http://www.lancelarsen.com/Blog/tabid/72/EntryId/48/AutoIt-C-Helper-Library.aspx Theres un site avec des ressources où quelqu'un a créé une classe en important les fonctions de la bibliothèque DLL. Mais je pense que si vous incluez simplement la bibliothèque, vous n'avez pas nécessairement besoin d'utiliser cette classe. Je dis cela parce que sa classe d'aide n'inclut pas toutes les fonctions en tant qu'importations mais vous pouvez accéder à toutes les méthodes d'autoit de toute façon. –