日期:2014-05-17  浏览次数:21031 次

请问怎么通过模拟按键调用第三方程序右键菜单里的某个按钮?
需求:一个winform程序通过api模拟鼠标及按键操作在第三方程序黏贴数据。
目前其实已经初步实现了,
1、在winform程序里定义全局快捷键
2、在第三方程序的界面中按指定的快捷键模拟鼠标右键点击(可以弹出复制(C),黏贴(P)等菜单)
3、现在就是这步搞不定,要求模拟点击“P”按键,将剪切板里的数据黏贴进来。
模拟鼠标:
  //右键点下&松开
  Win32API.mouse_event((int)(MouseEventFlags.RIGHTDOWN | MouseEventFlags.RIGHTUP), 0, 0, 0, 0);
  System.Threading.Thread.Sleep(100);
模拟键盘Win32API.keybd_event((byte)Keys.P, 0, 0, 0);(这一步不成功)



------解决方案--------------------
如果是标准的textbox、richtextbox或者word这样的软件,直接发送wm_paste事件就可以了,不需要这么麻烦。
------解决方案--------------------
Win32API.keybd_event((byte)Keys.P, 0, 0, 0);
Win32API.keybd_event((byte)Keys.P, 0, KEYEVENTF_KEYUP, 0);