日期:2014-05-18 浏览次数:21496 次
  public partial class DemoForm : Form
    {
        [StructLayout(LayoutKind.Sequential)]
        struct NativeRECT
        {
            public int left;
            public int top;
            public int right;
            public int bottom;
        }
        [Flags]
        enum MouseEventFlag : uint
        {
            Move        = 0x0001,
            LeftDown    = 0x0002,
            LeftUp      = 0x0004,
            RightDown   = 0x0008,
            RightUp     = 0x0010,
            MiddleDown  = 0x0020,
            MiddleUp    = 0x0040,
            XDown       = 0x0080,
            XUp         = 0x0100,
            Wheel       = 0x0800,
            VirtualDesk = 0x4000,
            Absolute    = 0x8000
        }
        [DllImport("user32.dll")]
        static extern bool SetCursorPos(int X, int Y);  
        [DllImport("user32.dll")]
        static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);
        [DllImport("user32.dll")]
        static extern IntPtr FindWindow(string strClass, string strWindow);
        [DllImport("user32.dll")]
        static extern IntPtr FindWindowEx(IntPtr hwndParent, HandleRef hwndChildAfter, string strClass, string strWindow);
        [DllImport("user32.dll")]
        static extern bool GetWindowRect(IntPtr hwnd, ref NativeRECT rect);
........省略部分代码
  private void btnFind_Click(object sender, EventArgs e)
        {
            NativeRECT rect = new NativeRECT();
            IntPtr fdwd=FindWindow(null, "程序");
            txtFind.Text = fdwd.ToString();
            GetWindowRect(fdwd, ref rect);
            txt_X1.Text = rect.left.ToString();//获取左上角X的坐标
            txt_Y1.Text = rect.top.ToString();//获取左上角Y的坐标
            
        }