项目中需要调用一个其他公司写的程序(无源码,无接口,应该是MFC的)。这个程序运行后最小化,然后只要系统中有F1,F2,F3...这样的按键事件就可以呼叫出相应的功能(不需要该程序获得焦点,应该是全局hook实现的)。现在需要我在自己的程序中控制哪个功能被弹出,也就是模拟键盘输入。现在已经用了
SendKeys.SendWait("{F1}");SendKeys.Send("{F1}");
keybd_event((byte)Keys.F1, 0, 0, 0); //按下F1
keybd_event((byte)Keys.F1, 0, 2, 0); //释放F1
这些方法,都没有响应,但是直接在键盘上按F1是有响应的,请问要用什么方法可以发送F1按键消息?
SendKeys.SendWait("{F1}");SendKeys.Send("{F1}");
keybd_event((byte)Keys.F1, 0, 0, 0); //按下F1
keybd_event((byte)Keys.F1, 0, 2, 0); //释放F1
这些方法,都没有响应,但是直接在键盘上按F1是有响应的,请问要用什么方法可以发送F1按键消息?
解决方案 »
- C#顺序执行改为并发执行 怎么做?
- [基础问题]关于List<>中的sort()问题
- C#如何设置导出的Excel表里面一列的宽度?????
- 请问哪里有可停靠的.Net的Toolbar控件下载?
- 运行正确C#小程序时,出现"error CS1014: 应为 get 或 set 访问器"请问这是什么原因?
- 求教:HyperLink传值问题,急急!!
- 拼音如何转汉字?
- webclient上传文件的问题
- dataset GZIP压缩问题(急)
- 长时间操作时(主线程中),显示界面的控件(主线程中)刷新问题。(在线等待)
- 怎么找不到 Microsoft.ApplicationBlocks.OleDb 引用?
- 表格内的隐藏和显示
http://blog.csdn.net/fsc2988877/article/details/1483166
。。
。。这些都是对你最小化应用程序上按下F1, 所以对其他程序没影响。如果要用就用全局的钩子
keybd_event((byte)Keys.F1, 0, 0, 0); //按下F1
keybd_event((byte)Keys.F1, 0, 2, 0); //释放F1
是可以用的,两行语句之间一定要加延时。
谢谢各位,封贴