Господа, помогите разобраться...
Имеется окно с mainmenu (например InternetExplorer). И в этом mainmenu необходимо программно вызвать File->SaveAs.
Для этого я последовательно посылаю 3 сообщения WM_KEYDOWN:
1) VK_F10 ---переход в mainmenu
2) ord('F') ---File
3) ord('A') ---SaveAs
Здравствуйте, <Аноним>, Вы писали:
А>Для этого я последовательно посылаю 3 сообщения WM_KEYDOWN: А>1) VK_F10 ---переход в mainmenu А>2) ord('F') ---File А>3) ord('A') ---SaveAs
А>Что не так???
Я сейчас попробовал руками такую комбинацию нажимать. В русском IE не работает, т.к. там клавиши надо жать с русскими буквами. И еще. Может, надо еще WM_KEYUP посылать?
J>Я сейчас попробовал руками такую комбинацию нажимать. В русском IE не работает, т.к. там клавиши надо жать с русскими буквами. И еще. Может, надо еще WM_KEYUP посылать?
Тут дело то не в русских буквах. Окно IE я взял для примера. Проблема в том, что mainmenu не получает фокус при Sendmessage(MyHWND,WM_KEYDOWN или WM_CHAR,VK_F10,0)
Здравствуйте, Аноним, Вы писали:
J>Я сейчас попробовал руками такую комбинацию нажимать. В русском IE не работает, т.к. там клавиши надо жать с русскими буквами. И еще. Может, надо еще WM_KEYUP посылать?
А>Тут дело то не в русских буквах. Окно IE я взял для примера. Проблема в том, что mainmenu не получает фокус при Sendmessage(MyHWND,WM_KEYDOWN или WM_CHAR,VK_F10,0)
а не легче ли былобы узнать id от menuitem'а и послать команду (WM_COMMAND, id, ...) напрямую?
Re[4]: MainMenu
От:
Аноним
Дата:
09.04.03 13:52
Оценка:
Здравствуйте, teekanne, Вы писали:
T>Здравствуйте, Аноним, Вы писали:
J>Я сейчас попробовал руками такую комбинацию нажимать. В русском IE не работает, т.к. там клавиши надо жать с русскими буквами. И еще. Может, надо еще WM_KEYUP посылать?
А>Тут дело то не в русских буквах. Окно IE я взял для примера. Проблема в том, что mainmenu не получает фокус при Sendmessage(MyHWND,WM_KEYDOWN или WM_CHAR,VK_F10,0)
T>а не легче ли былобы узнать id от menuitem'а и послать команду (WM_COMMAND, id, ...) напрямую?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, teekanne, Вы писали:
T>Здравствуйте, Аноним, Вы писали:
J>Я сейчас попробовал руками такую комбинацию нажимать. В русском IE не работает, т.к. там клавиши надо жать с русскими буквами. И еще. Может, надо еще WM_KEYUP посылать?
А>Тут дело то не в русских буквах. Окно IE я взял для примера. Проблема в том, что mainmenu не получает фокус при Sendmessage(MyHWND,WM_KEYDOWN или WM_CHAR,VK_F10,0)
T>а не легче ли былобы узнать id от menuitem'а и послать команду (WM_COMMAND, id, ...) напрямую?
А>Может и легче. Только КАК?
ну например через spy++.
на немецком ie5.5 id = 258.
меня не удивит, если id у тругих версий такаяжее будет.
Re[6]: MainMenu
От:
Аноним
Дата:
10.04.03 13:38
Оценка:
T>ну например через spy++.
T>на немецком ie5.5 id = 258. T>меня не удивит, если id у тругих версий такаяжее будет.
Спасибо. Получилось
Подскажите пожалуйста, как теперь определить HWND появившегося модального окна "Сохранение Веб-страницы" и кликнуть по кнопке "Сохранить"
Здравствуйте, Аноним, Вы писали:
T>ну например через spy++.
T>на немецком ie5.5 id = 258. T>меня не удивит, если id у тругих версий такаяжее будет.
А>Спасибо. Получилось
А>Подскажите пожалуйста, как теперь определить HWND появившегося модального окна "Сохранение Веб-страницы" и кликнуть по кнопке "Сохранить"
ну можно например в цикле подождать пока GetLastActivePopup(hwndInternetExplorer) != hwndInternetExplorer. (посмотрите описание в msdn'е)
а потом просто sendmessage(hwndSaveDialog, WM_COMMAND, 0, ID_OK);
Здравствуйте, Аноним, Вы писали:
А>Господа, помогите разобраться... А>Имеется окно с mainmenu (например InternetExplorer). И в этом mainmenu необходимо программно вызвать File->SaveAs. А>Для этого я последовательно посылаю 3 сообщения WM_KEYDOWN: А>1) VK_F10 ---переход в mainmenu А>2) ord('F') ---File А>3) ord('A') ---SaveAs
А>Что не так???
Про WM_COMMAND тебе сказали.
А нажатия клавиш эмулируются с пом. VkKeyScan(...) + WM_KEYDOWN + WM_KEYUP