- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在大多数应用程序中,当您单击某个 MenuItem 时,会发送一个 WindowsMessage(通常是 WM_COMMAND
),其中包含一个 wParam
表示所选 MenuItem 的 ID。
某个程序有一个窗口菜单(通过单击标题栏上的程序图标可以访问该菜单),
我想知道当我从该菜单中选择特定的 MenuItem 时发送的 WindowsMessage 是什么。
该程序是众所周知的 - Windows XP 中的命令提示符窗口:(cmd.exe)
这是窗口菜单:
我想为那里的 MenuItem 捕获 WindowsMessage 和 wParam,
例如“粘贴”菜单项。
(但不只是它..任何其他可能也是如此)
这是我尝试过的:
我经常尝试的第一种方法是使用 Spy++。
问题是,当我尝试为这个特定程序(DOS 窗口)记录消息时,Spy++ 给了我这个消息框:
出于某种原因,Spy++ 不会为该程序捕获 WindowsMessages。
所以我继续使用第二种方法..
Resource Hacker (ResHacker.exe) 也非常适合查找从单击的 MenuItem 发送的 WindowsMessage,而且它很容易做到这一点。
如果你运行 Resource Hacker,然后用它打开一些 EXE 文件,
你通常会看到这些树,其中一棵叫做“菜单”,
它包含所有详细信息,包括 wParam:
问题是,当我尝试在 cmd.exe 上使用 Resource Hacker 时,
我明白了:
可以看出,那里没有“菜单”树。
除了我常用的2种方法,还有其他方法吗,
可用于查找为 DOS 窗口的窗口菜单中的“粘贴”MenuItem 发送的 WindowsMessage
(和 wParam
)?
最佳答案
0xfff1 是 wParam,所以在 C# 中(您没有指定您使用的语言,但应该很容易翻译它):
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam, uint lParam);
public const int WM_KEYDOWN = 0x01000;
void PasteInCommandPrompt(IntPtr hWnd)
{
SendMessage(handle, WM_COMMAND, 0xfff1, 0);
}
编辑:2019 年 9 月 22 日
在Console window - programmatic command code (wParam of WM_COMMAND)的评论中(用户使用上述链接到 Bill Lin 的博客,但无法使其正常工作的问题),@eryksun 给了我寻找 ConvhostV2.dll.mui 以找到所有可用菜单命令的想法。我找不到 ConvhostV2.dll.mui...
但是 在我的系统上我找到了 C:\Windows\System32\en-US\ConhostV1.dll.mui
,当用 Resource Hacker 查看时(如@spaceman尝试使用 cmd.exe),包含 cmd.exe 可用的所有菜单项。
cmd.exe 的完整命令列表是:
除了paste
(允许您执行任意命令),select all
和copy
也非常有用,因为它们可以让您获得控制台输出(虽然,剥离所有虚拟终端序列,指定文本颜色的字符)。
如果您正在深入研究命令窗口的操作路线,您可能还对新的“Windows 伪控制台”感兴趣,它可以让您完全控制 cmd.exe 或任何基于命令行的应用程序。参见 https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/ .
关于windows - 如何捕获从此菜单发送的 Windows 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34410697/
使用 Foundation 6.3.1,我希望在桌面上显示 Canvas 外菜单,在移动设备上显示 Accordion 菜单。例如 This is the desktop view with a co
function HideandUNhideObj(ThisObj) { var nav = document.getElementById(ThisObj).style if (nav.displ
我正在处理一个页面,该页面有一个显示“更新”的链接。当用户单击此链接时,我希望表单使用幻灯片效果并显示在链接下方。提交表单后,它会更新数据库,并且菜单会显示。 我知道这可以用 JavaScript 来
这是我的运行时创建菜单的关键部分: GtkWidget *menu, *menu_item; menu = gtk_menu_new(); menu_item = gtk_image_menu_ite
您好,我想实现一个像这样的 donut 菜单 http://dribbble.com/shots/610433-Wheel-Nav我知道有一种在 css3 中制作 donut 的简单方法。 .doug
我的应用程序中有一个菜单,当菜单打开时我会触发触觉反馈(来自 onTagGesture Action )。 然而 有时当我点击菜单打开触发器时,菜单实际上不会打开,但我仍然收到触觉反馈。我只在菜单实际
也许这是一个简单的解决方案,但我坚持了下来。 这里有我的代码 http://jsbin.com/ejomuv纯CSS菜单 我想要做的是在悬停时在下拉按钮底部设置 0px 边框半径,但仅在下拉菜单上设置
下拉列表、菜单和组合框都是非常常见的用户界面元素。用户习惯于在 native 应用程序和 Web 应用程序中看到这些元素,但它们存在一些问题。 您必须瞄准鼠标。当您将鼠标移开时,有些菜单会折叠,而有些
我有 codeigniter 背景。现在,我正在学习 Laravel。所以,我处于这种情况(示例),我正在尝试创建一个具有多个用户的 web 应用程序。用户类型 A ,他们可以访问菜单 a、菜单 b
我正在学习 JQuery 的基础知识,我的老师显示的 menu() 看起来根本不像我的。 这是我创建的菜单的 LAF: 代码: Hello Hi Welcome World
- SELECT - 上面的显示:none不起作用。我也尝试过“隐藏”,但没有成功。 如何隐藏此选择菜单? 最佳答案 换行与 或并将 id 添加到标签。 - SELECT
我使用 Jquery 创建菜单,如下所示: homeinfo2info3 Jquery 代码如下: $(document).ready(function(){ $(".prof_info1").unb
我是 C 新手,我需要为项目构建一个带有循环的菜单。我有两个问题。 1) 我想在 else 中添加一个字符,如果在主菜单中按“2”后询问某事,问题将是“你要去参加事件吗?”用户可以输入聊天“Y”或“N
大家好,过去几个小时我一直在为类(class)编写这个程序,但似乎无法解决最后两个问题。它基本上是一个略微修改的 CashRegister 类,通过菜单提供基本功能。我遇到的问题是: 1) 用户第一次
List studentInfo = new LinkedList(); int choice; boolean flag = true; Student student =
我正在使用 bootsrap 4 alpha 6 和 midnight.js 来更改导航菜单切换器的颜色。我想在它旁边插入一个文本(菜单)。捕获中的示例。对于文本切换器,我使用 fontawesome
我正在尝试使用 CSS 菜单解决菜单在 IE 6 中无法正确显示的问题 alt text http://content.screencast.com/users/Dokmanc/folders/Jin
我无法让这段代码工作 - 我想要的是当我将鼠标悬停在圆圈上时,菜单会出现,然后如果我将鼠标从圆圈或菜单上移开,它就会消失。我尝试做的任何事情都是非常错误的,例如 onmouseover 在圆圈上然后在
我有一个典型的 CSS 顶部导航,当您滑过不同的父菜单项时,它会显示一个子菜单。如何更改代码以保持显示事件子菜单。因此,如果您在该父菜单项或其子项之一的页面上,它将保持显示该子菜单,除非您将鼠标悬停在
我很亲近。我怎样才能在我的 上有 MENU 1。 fiddle显示为默认菜单选项,然后在 MENU 2 悬停时更改? 提前致谢。继续编码! :) 最佳答案 要根据您的响应完全远离 jquery 进行编
我是一名优秀的程序员,十分优秀!