Как открыть меню программы из другой программы?
От: nikulin_andrey Узбекистан  
Дата: 15.04.03 16:35
Оценка:
Как открыть меню программы из другой программы?

Т.е. Есть прога с обычным меню типа File, Edit, View и т.д.
Я вроде отследил через MS Spy++ какое сообщение получает окно в случае открытия меню. Посылаю точно такое же сообщение из друой программы, сообщение отображается в окне MS Spy++ , но меню не открывается. Наверное есть какие то особенности ... что-то еще надо сделать? Может кто пояснит? Буду очень благодарен.
Re: Как открыть меню программы из другой программы?
От: LaFlour Австралия blog: http://spaces.live.com/laflour
Дата: 16.04.03 04:46
Оценка:
Здравствуйте, nikulin_andrey, Вы писали:

NA>Как открыть меню программы из другой программы?


NA>Т.е. Есть прога с обычным меню типа File, Edit, View и т.д.

NA>Я вроде отследил через MS Spy++ какое сообщение получает окно в случае открытия меню. Посылаю точно такое же сообщение из друой программы, сообщение отображается в окне MS Spy++ , но меню не открывается. Наверное есть какие то особенности ... что-то еще надо сделать? Может кто пояснит? Буду очень благодарен.
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{
  HWND hwnd;
  hwnd=FindWindow("SciCalc","Калькулятор");
  if (hwnd!=NULL) 
  {
      HMENU hMenu;
      hMenu=GetMenu(hwnd);
      if (hMenu!=NULL)
      {
          int iCount;
          iCount=GetMenuItemCount(hMenu);
          cout << "Menu Item - " << iCount << endl;
      }
      else cout << " Error Loading Menu" << endl;
  }
  else cout << " Error Find Windows" << endl;

}
"Деньги портят человека, когда они у других."
Re[2]: Как открыть меню программы из другой программы?
От: nikulin_andrey Узбекистан  
Дата: 16.04.03 05:53
Оценка:
Здравствуйте, LaFlour.

Не понял. Получили мы количество элементов меню, а дальше что?
Re[3]: Как открыть меню программы из другой программы?
От: LaFlour Австралия blog: http://spaces.live.com/laflour
Дата: 16.04.03 08:03
Оценка:
Здравствуйте, nikulin_andrey, Вы писали:

NA>Здравствуйте, LaFlour.

NA>Не понял. Получили мы количество элементов меню, а дальше что?
Я показал способ добраться до меню. Ну а дальше на твое усмотрение
попробуй
  hmenuTrackPopup = GetSubMenu(hmenu, 0); 
    // Display the shortcut menu. Track the right mouse 
    // button. 
 
    TrackPopupMenu(hmenuTrackPopup, 
            TPM_LEFTALIGN | TPM_RIGHTBUTTON, 
            pt.x, pt.y, 0, hwnd, NULL);

сам не проверял.
"Деньги портят человека, когда они у других."
Re[4]: Как открыть меню программы из другой программы?
От: nikulin_andrey Узбекистан  
Дата: 16.04.03 09:07
Оценка:
Здравствуйте, LaFlour, Вы писали:

LF>Здравствуйте, nikulin_andrey, Вы писали:


NA>Здравствуйте, LaFlour.

NA>Не понял. Получили мы количество элементов меню, а дальше что?
LF>Я показал способ добраться до меню. Ну а дальше на твое усмотрение
LF>попробуй
LF>
LF>  hmenuTrackPopup = GetSubMenu(hmenu, 0); 
LF>    // Display the shortcut menu. Track the right mouse 
LF>    // button. 
 
LF>    TrackPopupMenu(hmenuTrackPopup, 
LF>            TPM_LEFTALIGN | TPM_RIGHTBUTTON, 
LF>            pt.x, pt.y, 0, hwnd, NULL); 

LF>

LF>сам не проверял.

Не работает
Re: Как открыть меню программы из другой программы?
От: muma Германия  
Дата: 16.04.03 09:36
Оценка: +1
Здравствуйте, nikulin_andrey, Вы писали:

_>Как открыть меню программы из другой программы?


_>Т.е. Есть прога с обычным меню типа File, Edit, View и т.д.

_>Я вроде отследил через MS Spy++ какое сообщение получает окно в случае открытия меню. Посылаю точно такое же сообщение из друой программы, сообщение отображается в окне MS Spy++ , но меню не открывается. Наверное есть какие то особенности ... что-то еще надо сделать? Может кто пояснит? Буду очень благодарен.

Я что-то и где-то читал , что еще желательно подключится через AttachThreadInput.
Попробуй поискать. Для SetFocus, например, это просто необходимо(MSDN).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.