首页 新闻 会员 周边 捐助

求解!c# postPostMessage获取窗体内某个坐标 点击无效

0
悬赏园豆:15 [待解决问题]
uint WM_LBUTTONDOWN = 0x201;
        uint WM_LBUTTONUP = 0x202;


        [DllImport("user32.dll", SetLastError = true)]
        static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
        [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        [DllImport("user32.dll", EntryPoint = "SetForegroundWindow", SetLastError = true)]
        private static extern void SetForegroundWindow(IntPtr hwnd);

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        static extern bool PostMessage(IntPtr hwnd, int msg, uint wParam, uint lParam); 

这是定义的

下面是按钮事件

 private void button1_Click(object sender, EventArgs e)
        {

            int x = 10;
            int y = 10;

            IntPtr hwndCalc = FindWindow(null, "Form1");
            SetForegroundWindow(hwndCalc);
            PostMessage(hwndCalc, WM_LBUTTONDOWN, 0, x + (y << 16));
            PostMessage(hwndCalc, WM_LBUTTONUP, 0, x + (y << 16));
        }
        uint WM_LBUTT

x 10 y 10 这个位置是一个按钮按钮时间如下

private void button2_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ok");
        }

结果一直都不会弹出 ‘’ok‘’

想实现的效果是 当我点击按钮1会 点击窗口内指定坐标(不要去获取那个位置的句柄按钮) 需要的就是在那个坐标实现点击  明明 x=10 y=10 已经是在按钮2上面了 但是就是不触发按钮2的事件。。。。

是不是我代码出什么问题了???求高手帮助

界面如下

这个是程序界面 

youngkeen的主页 youngkeen | 初学一级 | 园豆:8
提问于:2013-09-17 20:31
< >
分享
所有回答(1)
0

你是给 Form1 发送的,不是给你的 button2 发送的,你得拿到 button2 的 HANDLE 。

Launcher | 园豆:45050 (高人七级) | 2013-09-18 09:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册