读书人

怎么真正的模拟按键?对其它程序也有效

发布时间: 2012-07-19 16:02:19 作者: rapoo

如何真正的模拟按键?对其它程序也有效
我的软件需要用到另一个程序,它的全局快捷键是按F1,我的软件的快捷键是F2,我想按F2的同时,模拟按下F1,也就是我的程序和他的程序同时生效,否则的话需要按一下F2,再按一下F1很麻烦。
也就是相当于在键盘上只按F2,但同时实现了按F2-延时-按F1 这样的效果。
有没有高手可以做到?谢谢。

[解决办法]
sendmessage发按键消息
http://zhang-liming.blog.sohu.com/120588327.html
[解决办法]
SendMessage(hwnd, WM_KEYDOWN, VK_F1, 0);
试试
[解决办法]
有解决办法 ,既然他是F1,你就也弄F1,何必要弄个F2出来。快捷键的定义,有不冲突的方法,使不同EXE共享F1这个按键。楼主你QQ多少?

定义快捷键的方法也不是唯一的,关键是思路。比如隐藏一个窗体,一般人会想到用form1.hide,但就没别的办法了吗?比如我将窗口移到屏幕可视区域以外,然后再把任务栏上的按扭干掉,不跟隐藏效果是一回事吗?
[解决办法]
楼上各位都说了,按下F2时,发送VK_F1消息到对方窗体上
[解决办法]
sendmessage 或 postmessage
给其它的窗口发F2键, 给自已的窗口发F1键.

Hd := FindWindow(pchar('TfrmUploadFtp'), pchar('UploadFTP'));
// 获得接受窗口的句柄
if Hd <> 0 then
//SendMessage (Hd, WM_COPYDATA, form1.Handle,
// Cardinal(@ds)) // 发送WM_COPYDATA消息
PostMessage(Hd, WM_KEYDOWN, VK_F9, 0)
else
begin
form1.msg('FTP传送程序没找到!');
end;

读书人网 >.NET

热点推荐