C#winform调用mouse_event必须调用两次右键down才能调出右键菜单
程序是winform的,如果代码为下面,则只能在vs上调出右键菜单,在ppt上调用不出来右键:mouse_event(0x0001, x, y, 0, 0);//移动
mouse_event(0x0008, 0, 0, 0, 0);//右键down
mouse_event(0x0010, 0, 0, 0, 0);//右键up
如果代码为下面(即多调用一次右键down),则在ppt上能调用出右键菜单:
mouse_event(0x0001, x, y, 0, 0);//移动
mouse_event(0x0008, 0, 0, 0, 0);//右键down
mouse_event(0x0008, 0, 0, 0, 0);//右键down
mouse_event(0x0010, 0, 0, 0, 0);//右键up
x.y为我设置横纵坐标值。
以上现象能解释一下吗 --------------------编程问答-------------------- 试一下,中间休眠几毫秒会不会第一种情况也可以!
--------------------编程问答-------------------- mouse_event(0x0001, x, y, 0, 0);//移动
mouse_event(0x0001, x, y, 0, 0);//移动
//睡眠5毫秒
mouse_event(0x0008, 0, 0, 0, 0);//右键down
mouse_event(0x0010, 0, 0, 0, 0);//右键up
Thread.Sleep(5000);
mouse_event(0x0008, 0, 0, 0, 0);//右键down
//mouse_event(0x0008, 0, 0, 0, 0);//右键down
mouse_event(0x0010, 0, 0, 0, 0);//右键up
不起作用 --------------------编程问答-------------------- 是不是先要focus下,不知道,猜的 --------------------编程问答-------------------- mouse_event(0x0001, x, y, 0, 0);//移动
mouse_event(0x0008, 0, 0, 0, 0);//右键down <-是取焦点
然后 右键
mouse_event(0x0008, 0, 0, 0, 0);//右键down
mouse_event(0x0010, 0, 0, 0, 0);//右键up
如果不想两个DOWN。那就在移动么那个PPT上后,就要先取到他的焦点,就可以了。 --------------------编程问答-------------------- 原来第一个是焦点的意思,多谢多谢。再问一个问题,ppt上的com加载项,如何在外部调用和访问,即我有个notebook的工具,想访问ppt上自己做的一个com加载项的方法,请问怎么调用?先谢谢了 --------------------编程问答-------------------- 我遇到过 第一次是激活控件 那时没检测到的
补充:.NET技术 , C#