在DLL中加入了一个对话框资源,并为他建立了基于对话框的类,在DLL中导出一个安装钩子的函数
void sethook()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

hgame1=FindWindow(NULL,"要注入的进程窗口");
DWORD tid=::GetWindowThreadProcessId(hgame1,NULL);
::SetWindowsHookEx(WH_GETMESSAGE,&callback,::GetModuleHandle("system.dll"),tid);

钩子的回调函数如下:
LRESULT CALLBACK callback(
  int code,       //
  WPARAM wParam,  // 
  LPARAM lParam   // 
)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
   MSG m=*(MSG *)lParam;
if(m.wParam==VK_HOME&&m.lParam==0xC1470001)
{
if(wgmain==NULL)
{
wgmain=new CMain;
}
wgmain->Create(IDD_DLG_main);
wgmain->ShowWindow(true);
}
return CallNextHookEx(0,code,wParam,lParam );}问题是当, 我们在DLL注入的进程窗口按键HOME时,则呼出的对话框在注入进程主窗口界面以内,在任务栏没有我呼出对话框的图标如果用其它程序向DLL注入进程窗口发送按键消息,::PostMessage(hgame,WM_KEYUP,VK_HOME,0xC1470001);则呼出的对话框在注入进程主窗口界面以外,在任务栏有呼出对话框图标 同一段代码出现了不同的效果,十分怪异,请指教!