在本方法中控制其它應用進程菜單項的2個基本條件:
1)得到應用的主窗口句柄(HWND);
2)得到菜單子項ID;
1.獲取一個應用的菜單子項ID:
在本方法中獲取菜單子項ID需要藉助工具SPY++,通過SPY++監聽該應用對應的消息,人工點擊菜單後看點擊菜單時,觀察監聽得到的ID值,得到監聽到的ID後定義在自己所寫的程序中即可;
1.1 SPY++的消息賽選:
1) 打開SPY++ -->點擊監視菜單 --> 點擊日誌消息 --> 拖動查找工具至自己需要查找的目標程序窗口攔上 -->點擊消息 .
如圖1.1所示:
2)進入到消息頁面 -->點擊全部清除 -->重新只選擇WM_COMMAND消息-->點擊確定
如圖1.2所示:
1.3 隨後去點擊菜單可在SPY++上看到對應的菜單子項ID.
如圖1.3所示:
2.獲取應用的句柄:
通過FindWindow查找到應用句柄(_pParentHwnd)後,通過::SendMessage發送消息後控制了剛纔獲得的菜單ID項:
DWORD menuID = 32781;
::SendMessage(_pParentHwnd, WM_COMMAND, menuID, 0);