2014-08-31 47 views
0

您好我有Windows應用程序,我需要點擊菜單/選項卡上的項目。我可以找到所有選項,文件,幫助....選項卡,但我無法找到如何去我的項目。如何使用PostMessage/SendMessage點擊菜單項User32

我不能發送我的應用程序的圖片,但我會發送相同的示例/邏輯與IE瀏覽器,我需要點擊希臘語(IOS)。

1.I需要點擊查看

2.Hover編碼

3.Hover更多

和4.單擊希臘(IOS)。

enter image description here

我能找到文件的所有欄菜單,Edut,查看,工具,幫助

intWhdr = FindWindow(Step1Window.Class, Step1Window.Name);//Program 
currChild = FindWindowEx(intWhdr, 0, "WindowsForms10.Window.", "mainMenu");//Menu 

這裏我有我的主菜單,在這裏,我堅持我找不到路按下菜單項(如Ie示例)查看菜單。 我甚至不需要懸停操作,我可以使用SendMessage DownArrow和RightArrow來獲取我的項目,但我需要先點擊查看。

任何想法如何查看菜單形式的菜單欄上點擊?用的SendMessage/PostMessage的

UPDATE

enter image description here

回答

0

經過長期研究,並與dvasanth的幫助下,我找到salution

1.Yon需要找到WM_LBUTTONUP/DOWN NOT在IMG WM_SETCURSOR一樣,不是打開屬性,找到wParam和lParam

011C16A8 = 0x011C16A8

01:

2.Change只是通過添加0X +的lParam/wParam中

防爆格式011C16A

EX:00000001 = 0×01

EX:00000012 = 0×12

我想我得到一個想法....

在我來說,我覺得在性能:

WM_LBUTTONUP編輯後

lParam=00000001 
wParam=000C0348 

WM_LBUTTONDOWN

lParam=00000000 
wParam=000C0348 

母豬,就像這樣:

WM_LBUTTONUP

lParam=0x01 
wParam=0x000C0348 

WM_LBUTTONDOWN

lParam=0x00 
wParam=0x000C0348 

3.Just插入這對你的代碼。

我的代碼工作:

intRes1 = PostMessage(currChild, WM_LBUTTONDOWN, 0x01, 0x000C0348); 
System.Threading.Thread.Sleep(100); 
intRes1 = PostMessage(currChild, WM_LBUTTONUP, 0x00, 0x000C0348); 
1

用狙++跟蹤傳遞到菜單欄&那麼所有事件嘗試重新從您的程序發送消息。

+0

我發現這個事件(見更新),我認爲這是喜是按菜單項,但我不真的知道如何在代碼中使用它。 – 2014-08-31 12:51:42

+0

使用窗口的消息lparam,wparam和句柄調用sendmessage API。 – dvasanth 2014-08-31 14:53:12

+0

我試過,但wParam = 011C16A8和處理= 011C16A8是不是IntPtr或INT母豬我不能使用sendmessage,我不知道sendmessage將與011C16A8(我不知道什麼格式是什麼) – 2014-09-01 04:52:12