如题  谢谢大家的回答

解决方案 »

  1.   

    GetActiveWindow,键盘输入对应的是Active Window。
      

  2.   

    你的键盘钩子是通过什么实现的啊,一般在钩子消息里都有窗口的HWND。
      

  3.   

    HOOK函数是:LRESULT CALLBACK KeyHookProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
            if(nCode < 0 || nCode == HC_NOREMOVE)
    return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);

            if(lParam & 0x40000000)
    {
    return ::CallNextHookEx(g_hHook, nCode, wParam, lParam);
    }

    if (wParam == VK_NUMPAD8) 
    {
    ::SetForegroundWindow(g_hWndCaller);   // 此处不知道如何得到按键窗口句柄???? keybd_event('S', 0, 0, 0);
    keybd_event('S', 0, KEYEVENTF_KEYUP, 0);
    }


            return ::CallNextHookEx(g_hHook, nCode, VK_NUMPAD8, 0);
    }
    钩子消息里有窗口的HWND?
      

  4.   

    GetActiveWindow 得到是整个程序的窗口句柄吧?我想得到的是其它程序中正在输入的文本框句柄,再往该文本框发送模拟键盘消息, 直接往GetActiveWindow 得到的句柄发能行么?
      

  5.   

    经测试  直接往 GetActiveWindow 得到的句柄发是可以的谢谢各位了不过还想知道钩子消息里的窗口句柄信息在哪呢?