MFC HOOK dll 做改键程序解决思路

MFC HOOK dll 做改键程序
我现在想在按下A 键时响应S 键消息 我下面的代码实现不了 各位大侠给点意见 谢谢
HOOK 中的去部代码:
#include <afx.h>
#include<windows.h>


HHOOK g_key=NULL;
HWND g_hwnd=NULL;
CString g_str01="";
CString g_str02="";

LRESULT CALLBACK KeyboardProc(
  int code, // hook code
  WPARAM wParam, // virtual-key code
  LPARAM lParam // keystroke-message information
)
{
char* pBuf01=NULL;
char* pBuf02=NULL;
  char ch[2];
  if (HC_ACTION == code)
 {

if(VK_F12==wParam)
{
::SendMessage(g_hwnd,WM_CLOSE,0,0);
}
else if('A'==wParam)
{
//MessageBox(g_hwnd,"111",NULL,MB_OK);
keybd_event(VkKeyScan('S'),0,0,0); // 为什么不响应S 键消息  
}  
if(!g_str01.IsEmpty() && !g_str02.IsEmpty())
{
pBuf01=g_str01.GetBuffer(0);
pBuf02=g_str02.GetBuffer(0);
ch[0]=*pBuf01;
  ch[1]=*pBuf02;
   
if(ch[0]==wParam)

  g_str01.Format("%s",ch[0]);
  g_str02.Format("%s",ch[1]);
  MessageBox(g_hwnd,g_str01,NULL,MB_OK);
MessageBox(g_hwnd,g_str02,NULL,MB_OK);
MessageBox(g_hwnd,"0000",NULL,MB_OK);
::SendMessage(g_hwnd,WM_CHAR,ch[1],0);
keybd_event(VkKeyScan(ch[1]),0,0,0);
}
}
  }  
return 1;
}


void SetHook(HWND hwnd,CString str1,CString str2)
{
  g_hwnd=hwnd;
  g_str01=str1;
  g_str02=str2;
  g_key=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc, GetModuleHandle("HOOK"), 0);
}

------解决方案--------------------
我最近也是在做这个,留个QQ以后多多交流460602540

下面是我实现的方式:
LRESULT CALLBACK LowLevelKeyboardProc( int nCode,WPARAM wParam,LPARAM lParam )
{

if (nCode == HC_ACTION)
{
if (wParam == WM_KEYDOWN)
{
int code = ((KBDLLHOOKSTRUCT*)lParam)->vkCode;
if (code == int (A))
{
keybd_event(int (S),0,0,0);
return 1;
}

}
return CallNextHookEx(hllKeyBoard,nCode,wParam,lParam);
}

SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,GetModuleHandle(NULL),0);

这样应该就能实现你所讲的功能。。。。
------解决方案--------------------
else if('A'==wParam)
{
//MessageBox(g_hwnd,"111",NULL,MB_OK);
keybd_event(VkKeyScan('S'),0,0,0); // 为什么不响应S 键消息

wParam是virtual-key code
a的虚拟键码是:VK_A 

------解决方案--------------------
探讨
else if('A'==wParam)
{
//MessageBox(g_hwnd,"111",NULL,MB_OK);
keybd_event(VkKeyScan('S'),0,0,0); // 为什么不响应S 键消息

wParam是virtual-key code
a的虚拟键码是:VK_A

------解决方案--------------------
探讨

引用:
else if('A'==wParam)
{
//MessageBox(g_hwnd,"111",NULL,MB_OK);
keybd_event(VkKeyScan('S'),0,0,0); // 为什么不响应S 键消息

wParam是virtual-key code
a的虚拟键码是:VK_A


我改成VK_A 编译提示……