2016-11-07 11 views
0

Я пишу управления OCX загружен в Internet Explorer 8. Он используется для отправки Alt + (стрелка вниз ключа) сообщения на веб-страницу IE8 с помощью функции PostMessageC++ PostMessage для исследователя интернета

::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 + стрелка вниз). Я не знаю почему.

ответ

0

i resoule this problem by meself, вместо этого используйте функцию sendinput. .postmessage, sendmessage, keybd_event не действуют.