程序是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);//右键upx.y为我设置横纵坐标值。以上现象能解释一下吗

解决方案 »

  1.   

    试一下,中间休眠几毫秒会不会第一种情况也可以!mouse_event(0x0001, x, y, 0, 0);//移动
    //睡眠5毫秒
    mouse_event(0x0008, 0, 0, 0, 0);//右键down
    mouse_event(0x0010, 0, 0, 0, 0);//右键up
      

  2.   

                    mouse_event(0x0001, x, y, 0, 0);//移动
                    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
    不起作用
      

  3.   

    是不是先要focus下,不知道,猜的
      

  4.   

    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上后,就要先取到他的焦点,就可以了。
      

  5.   

    原来第一个是焦点的意思,多谢多谢。再问一个问题,ppt上的com加载项,如何在外部调用和访问,即我有个notebook的工具,想访问ppt上自己做的一个com加载项的方法,请问怎么调用?先谢谢了