C# 如何使用PostMessage/SendMessage用户32单击菜单项

C# 如何使用PostMessage/SendMessage用户32单击菜单项,c#,sendmessage,postmessage,user32,C#,Sendmessage,Postmessage,User32,您好,我有Windows应用程序,我需要在菜单/选项卡项上单击一个。我可以找到包含所有选项、文件、帮助的菜单。。。。选项卡,但我找不到如何访问我的项目 我无法发送我的应用程序的图片,但我将发送与IE相同的示例/逻辑,我需要单击希腊语(IOS) 1.我需要单击查看 2.悬停编码 3.继续盘旋 四,。单击希腊语(IOS) 我可以找到包含文件、教育、视图、工具和帮助的所有栏菜单 intWhdr = FindWindow(Step1Window.Class, Step1Window.Name);//P

您好,我有Windows应用程序,我需要在菜单/选项卡项上单击一个。我可以找到包含所有选项、文件、帮助的菜单。。。。选项卡,但我找不到如何访问我的项目

我无法发送我的应用程序的图片,但我将发送与IE相同的示例/逻辑,我需要单击希腊语(IOS)

1.我需要单击查看

2.悬停编码

3.继续盘旋

四,。单击希腊语(IOS)

我可以找到包含文件、教育、视图、工具和帮助的所有栏菜单

intWhdr = FindWindow(Step1Window.Class, Step1Window.Name);//Program 
currChild = FindWindowEx(intWhdr, 0, "WindowsForms10.Window.", "mainMenu");//Menu
这里我有我的主菜单,这里我卡住了,我找不到方法按下菜单项(如Ie示例)查看菜单。 我甚至不需要悬停操作,我可以使用SendMessage DownArrow和RightArrow来访问我的项目,但我需要先单击View

您知道如何使用SendMessage/PostMessage单击查看菜单表单菜单栏吗

更新


使用spy++跟踪发送到菜单栏的所有事件,然后尝试从您的程序重新发送消息。

经过长时间的研究,在dvasanth的帮助下,我找到了问候语

1.您不需要像在img中一样找到WM_LBUTTONUP/DOWN而不是WM_SETCURSOR,然后打开属性并找到wParam和lParam

2.只需添加0x+lParam/wParam即可更改格式011C16A8

Ex:011C16A8=0x011C16A8

EX:00000001=0x01

EX:00000012=0x12

我想我有个主意

在我的案例中,我在properties中发现:

WM_LBUTTONUP

lParam=00000001
wParam=000C0348
lParam=0x01
wParam=0x000C0348
沃尔布顿镇

lParam=00000000
wParam=000C0348
 lParam=0x00
 wParam=0x000C0348
编辑后的sow显示如下:

WM_LBUTTONUP

lParam=00000001
wParam=000C0348
lParam=0x01
wParam=0x000C0348
沃尔布顿镇

lParam=00000000
wParam=000C0348
 lParam=0x00
 wParam=0x000C0348
3.只需将其插入到代码中即可

我的代码有效:

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

我发现了这个事件(请参阅更新),我认为hi正在按菜单项,但我不知道如何在代码中使用它。调用sendmessage API,将消息、lparam、wparam和句柄发送到窗口。我尝试过,但wparam=011C16A8和handle=011C16A8不是IntPtr或Int sow,我无法使用sendmessage,我不知道将与011C16A8一起使用的sendmessage(我不知道它是什么格式)