Отправить wm_command в меню ленты

Если я начинаю перехватывать сообщения в MS Paint с ленточным меню в Win7 с Spy++ и нажимаю на некоторые кнопки меню, то не отображаются сообщения wm_command. Но если я запусту этот скрипт autohotkey, я получу интересные результаты - если MS Paint не обрабатывает сообщение - (возврат 1), он нажимает кнопку меню. Вы должны нажать F10, и когда скрипт остановится, вы увидите, что какая-то кнопка меню нажата. Чтобы продолжить - нажмите F11.

$F10::
Loop % 0xFFFFFFFF {
   SendMessage, 0x111, A_Index,,, ahk_class MSPaintApp
   if ErrorLevel {
      ToolTip % A_Index
      Pause
   }
}
$F11::Pause

Например, чтобы нажать лупу в MS Paint, мы можем сделать с этим кодом:

SendMessage, 0x111, 605,,, ahk_class MSPaintApp

Где 605 - это wParam для wm_command.

То же самое происходит с другими программами Microsoft с ленточным меню. Кто-нибудь может объяснить - почему это происходит?

0 ответов

Другие вопросы по тегам