C++/MFC下獲取控制其它進程的菜單Menu和如何使用SPY++獲取菜單ID的方法

在本方法中控制其它應用進程菜單項的2個基本條件:

1)得到應用的主窗口句柄(HWND);

2)得到菜單子項ID;

1.獲取一個應用的菜單子項ID:

       在本方法中獲取菜單子項ID需要藉助工具SPY++,通過SPY++監聽該應用對應的消息,人工點擊菜單後看點擊菜單時,觀察監聽得到的ID值,得到監聽到的ID後定義在自己所寫的程序中即可;

 1.1 SPY++的消息賽選:

   

    1) 打開SPY++  -->點擊監視菜單 -->  點擊日誌消息 --> 拖動查找工具至自己需要查找的目標程序窗口攔上 -->點擊消息 .

如圖1.1所示:

圖1.1

 

2)進入到消息頁面 -->點擊全部清除 -->重新只選擇WM_COMMAND消息-->點擊確定

如圖1.2所示:

圖1.2

 

1.3 隨後去點擊菜單可在SPY++上看到對應的菜單子項ID.

如圖1.3所示:

圖1.3

 

2.獲取應用的句柄:

通過FindWindow查找到應用句柄(_pParentHwnd)後,通過::SendMessage發送消息後控制了剛纔獲得的菜單ID項:

    DWORD menuID = 32781;
    ::SendMessage(_pParentHwnd, WM_COMMAND, menuID, 0);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章