如何打开任何 window 的上下文菜单?
How to open the context menu of any window?
如何打开 window 的上下文菜单(当您 Right-Click [= window).
的 22=]
我尝试过的事情(点击按钮)
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);
要在 window 上打开系统上下文菜单,您可以按 Alt+Space。因此,在您的情况下,您可以将这些键发送到 window,这应该会为您打开上下文菜单。
你用SendMessage
所做的部分实际上只发送一个通知,即指定的window模拟右键单击。但是鼠标放在哪里还是很重要的。
同样重要:如果您使用 "SendKeys.Send"(对于 windows 表单),这只会影响当前处于活动状态的 window。
如何打开 window 的上下文菜单(当您 Right-Click [= window).
的 22=]我尝试过的事情(点击按钮)
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);
要在 window 上打开系统上下文菜单,您可以按 Alt+Space。因此,在您的情况下,您可以将这些键发送到 window,这应该会为您打开上下文菜单。
你用SendMessage
所做的部分实际上只发送一个通知,即指定的window模拟右键单击。但是鼠标放在哪里还是很重要的。
同样重要:如果您使用 "SendKeys.Send"(对于 windows 表单),这只会影响当前处于活动状态的 window。