2009-02-06 6 views
0

Nous travaillons sur un module dans lequel j'ai donné le xpos, ypos, windowhandle. Maintenant ce que je veux faire est que je veux augmenter l'événement pour l'entrée correspondante sur (xpos, ypos, windowhandle).Comment lever manuellement un événement en fournissant les paramètres X, Y et Windowhandle?

Par exemple:

L'entrée donnée est de sélectionner un fichier signifie qu'il choisira un fichier automatiquement par mon module.

00010086 PWM_LBUTTONDBCLK fwKeys:MK_LBUTTON xPos:273yPos:354 

L'événement ressemblera à ce qui précède.

Répondre

2

Pseudo code .. Vous pouvez modifier en fonction de vos besoins ...

using System; 
using System.Windows.Forms; 
using System.Runtime.InteropServices; 

public class Form1 : Form 
{ 
    [DllImport("user32.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)] 
    public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo); 

    private const int MOUSEEVENTF_LEFTDOWN = 0x02; 
    private const int MOUSEEVENTF_LEFTUP = 0x04; 
    private const int MOUSEEVENTF_RIGHTDOWN = 0x08; 
    private const int MOUSEEVENTF_RIGHTUP = 0x10; 

    public Form1() 
    { 
    } 

    public void DoMouseClick() 
    { 
     //Call the imported function with the cursor's current position 
     mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0); 
    } 

    //...other code needed for the application 
} 
+0

à travers le code i besoin d'ouvrir le fichier. Pour ce que je peux donner xpos, ypos .... est-il possible .... –

+0

S, Vous pouvez lire et transmettre les paramètres de la fonction au-dessus de la fonction mouseevent, pour générer l'événement de souris à partir de user32.dll. Même vous pouvez envoyer des séquences de touches comme indiqué dans msdn.microsoft.com/en-us/library/ms171548.aspx – lakshmanaraj