2009-05-09 7 views
3

J'essaye d'automatiser certaines choses sur un jeu flash en cours d'exécution dans un contrôle webbrowser dans mon programme C#. En utilisant sendmessage dll de User32, j'ai pu cliquer sur les coordonnées sur des pages normales comme google, mais cela ne fonctionne pas sur le contenu Flash. Toutes les façons je peux le faire? En outre, il ne peut pas être détectable pour le jeu flash. J'en ai un en fonctionnement mais j'aimerais le réécrire en C# et le faire fonctionner au minimum.Automatisation du contrôle .NET webbrowser

+0

http://www.lancelarsen.com/Blog/tabid/72/EntryId/48/AutoIt-C-Helper-Library.aspx C'était en fait plus que la réponse helpfull j'ai accepté –

+0

jouer evony ou autre chose? ;) –

+0

quelque chose d'autre, toutes les filles d'ordinateur semi-nues sur les ajoute pour evony m'a fait même pas envie de voir ce qu'il était aobut .. –

Répondre

3

Pourquoi ne pas simplement appeler votre script Autoit/Autohotkey de votre programme C# en utilisant la classe System.Diagnostics.Process?

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

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

Notez que le CreateNoWindow = true pour assurer qu'il fonctionne caché, et le WaitForExit(), pour rendre votre code d'attente pour le processus de retour. AutoIt et AutoHotkey ont des commandes d'automatisation très puissantes qui ont été affinées au fil des années. Il est très difficile de reproduire des fonctionnalités C#/.NET similaires, mais croyez-moi, j'ai essayé.

2

Découvrez WatiN. automatisation du navigateur puissant, compatible avec C#:

http://watin.sourceforge.net/

+0

Excellent outil. Je vous remercie. –

+0

Ouais, WatiN est génial ... essayez cela si la réponse sélectionnée ne fonctionne pas pour vous. –

1

L'utilisation de SendMessage ou PostMessage fonctionnera. Vous devez envoyer 3 messages, WM_MOUSEMOVE, puis WM_MOUSEDOWN, puis WM_MOUSEUP. Le fichier 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. Travaille pour moi.

Questions connexes