Question

J'essaie d'automatiser certains éléments d'un jeu flash exécuté dans un contrôle de navigateur Web dans mon programme C #. En utilisant la dll sendmessage de user32, j'ai été en mesure de cliquer sur les coordonnées de pages normales telles que Google, mais cela ne fonctionne pas avec le contenu Flash. Est-ce que je peux faire ça? En outre, il ne peut pas être détectable pour le jeu flash. J'en ai un qui fonctionne dans autoit mais j'aimerais le réécrire en c # et le faire fonctionner au minimum.

Était-ce utile?

La solution

Pourquoi ne pas simplement appeler votre script Autoit / Autohotkey à partir de votre programme C # à l'aide de la classe System.Diagnostics.Process?

ProcessStartInfo psi = new ProcessStartInfo("your_script.ahk");
psi.CreateNoWindow = true;

Process procScript = Process.Start(psi);
procScript.WaitForExit();

Notez que CreateNoWindow = true pour s'assurer qu'il est masqué et que WaitForExit () permet à votre code d'attendre le retour du processus.

AutoIt et AutoHotkey possèdent des commandes d’automatisation très puissantes qui ont été perfectionnées au fil des ans. Il est très difficile de reproduire une fonctionnalité C # / .NET similaire, tout aussi fiable, croyez-moi que j'ai essayé.

Autres conseils

Découvrez WatiN. Automatisation puissante du navigateur, compatible avec C #:

http://watin.sourceforge.net/

Utiliser SendMessage ou PostMessage fonctionnera. Vous devez envoyer 3 messages, WM_MOUSEMOVE, puis WM_MOUSEDOWN, puis WM_MOUSEUP. WM_MOUSEMOVE doit indiquer un emplacement différent de WM_MOUSEDOWN et WM_MOUSEUP. WM_MOUSEDOWN et WM_MOUSEUP doivent être au même emplacement. Ça marche pour moi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top