如何打开任何窗口的上下文菜单?

时间:2015-04-17 13:06:31

标签: c# contextmenu sendmessage

如何打开窗口的上下文菜单(当您右键单击窗口的标题栏时出现的正常Windows上下文)。

我尝试过的事情(按一下按钮)

ReleaseCapture();
SendMessage(this.Handle, WM_NCRBUTTONDOWN, 0, 0);
SendMessage(this.Handle, WM_RBUTTONUP, 0, 0);
SendMessage(this.Handle, WM_CONTEXTMENU, 0, 0);

而且:

ReleaseCapture();
SendMessage(this.Handle, WM_NCRBUTTONDOWN, HT_CAPTION, 0);
SendMessage(this.Handle, WM_RBUTTONUP, HT_CAPTION, 0);
SendMessage(this.Handle, WM_CONTEXTMENU, HT_CAPTION, 0);

1 个答案:

答案 0 :(得分:4)

要在窗口中打开系统上下文菜单,可以按Alt + Space。因此,在您的情况下,您可以将这些键发送到该窗口,该窗口应该为您打开上下文菜单。

您使用SendMessage执行的部分实际上只发送模拟右键单击的指定窗口的通知。但它在鼠标所在的位置仍然很重要。

同样重要的是:如果使用“SendKeys.Send”(对于Windows窗体),这只会影响当前活动的窗口。