vc中怎么向特定的程序发送消息

vc中如何向特定的程序发送消息
A程序中通过调用ShellExecute调用程序B,B程序是一个街机模拟器mame,这时mame弹出一个子窗口,运行游戏,游戏窗口是激活的,可以接受键盘的输入,
我的问题是如何在A中向模拟器mame发送指定的键盘消息,比如现在由于游戏窗口是激活的我直接在键盘上按Esc,就可以推出游戏,我能不能在A中发送一个Esc的键盘消息给mame,从而让游戏退出?

应该如何实现这个功能,能给出详细的代码吗?


------解决方案--------------------
PostMessage()就可以
------解决方案--------------------
::SetForegroundWindow(m_hNeedPasteDataWnd);
::SetActiveWindow(m_hNeedPasteDataWnd);
::SetFocus(m_hNeedPasteDataWnd);

keybd_event(VK_CONTROL, (BYTE)0, 0 ,0);
keybd_event( 'V ', (BYTE)0, 0 ,0);
keybd_event( 'V ', (BYTE)0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, (BYTE)0, KEYEVENTF_KEYUP,0);

上面代码是是像另一进程窗口m_hNeedPasteDataWnd产生一个Ctrl + V击键消息.