关于键盘消息模拟的问题

发送一个按键到另一个程序使用以下两种方式

Sendmessage(handle,WM_KeyDown,VK_F1,0) (部分进程屏蔽了该消息)
keybd_event(VK_F1,MapVirtualKey(VK_F1,0),0,0)
keybd_event 需要窗口获得焦点后才可以,sendmessage 直接通过句柄发送

问题一:以上两种按键方式在应用程序接受时用代码如何区别()

问题二:象键盘hook,发送到别的窗口的按键能拦截,但是不能修改发送给该窗口的按键码,
请问,如果想实现修改该按键码应该怎么做?希望有经验的朋友给个思路!
[329 byte] By [wyzhf-乌鸦] at [2008-4-24]
# 1
我的意思是想 通过句柄发送消息给一个(屏蔽了Sendmessage消息)的进程,而不用事先让该进程获得句柄
wyzhf-乌鸦 at 2007-10-21 > top of Msdn China Tech,Delphi,Windows SDK/API...
# 2
打错了
想通过句柄发送消息给一个(屏蔽了Sendmessage消息)的窗口,而不用事先让该窗口获得焦点

wyzhf-乌鸦 at 2007-10-21 > top of Msdn China Tech,Delphi,Windows SDK/API...
# 3
问题一:以上两种按键方式在应用程序接受时用代码如何区别()

好像不能区别吧。keybd_event也是发送了wm_keydown or wm_keyup的消息。
# 4
问题一:无法区别
问题二:可考虑发送自定义消息,接收后根据该自定义消息再进行相应的事件处理。
# 5
DOWN以后还要UP的,要不够不成按键动作!
newfang-传说中的MIC at 2007-10-21 > top of Msdn China Tech,Delphi,Windows SDK/API...
# 6
其实我是想发送按键给其它程序,因为其它程序他不接收 sendmessage消息,而能接受 keybd_event
wyzhf-乌鸦 at 2007-10-21 > top of Msdn China Tech,Delphi,Windows SDK/API...