c++ postmessage to internet explorer



我正在编写一个加载在ie8中的OCX控件。使用postmessage功能向IE8网页发送alt+(向下箭头键)消息

::PostMessage(hWnd_IE,WM_SYSKEYDOWN,VK_MENU,0);
::PostMessage(hWnd_IE,WM_KEYDOWN,VK_DOWN, 0);
::PostMessage(hWnd_IE,WM_KEYUP,VK_DOWN, 0);
::PostMessage(hWnd_IE,WM_KEYUP,VK_MENU,0);

hWnd_IE被发现:

hwnd1 = m_hWnd;
while(1)
{
    hwnd0 = ::GetParent(hwnd1);
    ::GetClassName(hwnd0, (LPTSTR)&buf, 100 ); 
    if ( _tcscmp( buf, _T("Internet Explorer_Server") ) == 0 )
    {
        hwnd0 = ::GetParent(hwnd0);
        return hwnd0;
    }
    hwnd1 = hwnd0;
    if(hwnd0 == NULL)
        break;
}

我认为它可以工作。然而,html网页只有单键效果(向下箭头键),而不是多键效果(alt+向下箭头键)。我不知道为什么。

如果我自己解决这个问题,使用sendinput函数代替。.postmessage,sendmessage,keybd_event都无效

最新更新