识别在 UI 单击后运行的命令

识别在 UI 单击后运行的命令

我正在寻找与这里类似的东西:如何知道UI点击对应的命令行cmd?

但就我的情况而言,是在 Windows 10 操作系统下。更具体地说,在 UI 中单击“使用代码打开”后运行的命令,如下图所示: 在 Windows 资源管理器中右键单击,使用 VS Code 打开

我想这是一条简单的code .命令。但我该如何再次确认呢?

我相信这可以借助事件查看器来完成,但我真的不知道该怎么做。我试过这个tasklist命令,但没有得到任何令人满意的结果,因为它只输出进程而不是命令。

答案1

这种菜单称为上下文菜单。上下文菜单的设置通常在注册表中。

了解上下文菜单

首先,您必须了解 HKEY_CLASSES_ROOT 注册表项。它包含所有文件扩展名和关联、CLSID、ProgID 和 IID。假设您转到 *.txt 键。它是文本文件的键。*.txt 键的默认值是 TXTFile,这意味着设置、上下文菜单和关联包含在 txtfile 键中。(注意,扩展名旁边的 * 是所有文件、Directory所有文件夹和DesktopBackground桌面上下文菜单的键)转到那里,您会找到一个名为的键shell。这是文本文件上下文菜单的设置。

在那里你会发现一些其他子键。它们将具有上下文菜单选项的名称。然后当你展开它们时,你会看到另一个名为的键command。它的默认值是应用程序及其调用时的命令行参数,如果你找到%1它,它会扩展为文件完整路径。

如果命令需要提升权限,那么语法会有所不同。在shell键中,创建另一个名为的键runas。然后将默认值设置为上下文菜单中的显示名称。然后创建另一个名为的子键command,并将默认值设置为应用程序和参数的路径。

另一件事是图标。要添加图标,请转到shell\The display name\commandshell\runas\command键并创建一个名为图标的值。然后指定图标的路径。

您可能已经注意到,上下文菜单按钮的某些单词中有一个类似下划线的东西。如果您按下 Alt + 该键,则会触发该选项。这称为加速键。也可以定义它。在runasshell 键的键的默认值或子键名称中,您可以在字母前添加一个 &,例如“Op&en with”,此处的“e”将是加速键。

如果您在命令键中创建一个名为“Noworkingdirectory”的值,则该命令将没有当前工作目录。默认情况下,该目录是文件的父文件夹。

VSCode 上下文菜单在哪里

VSCode 上下文菜单类似于HKCR\*\shell或中的搜索HKCR\DesktopBackground\shell。命令值为Full path of code.exe "%1"

笔记

不仅 %1 是特殊参数,还有很多:

%* - 用所有参数替换

%~ - 用第二个参数开头和后面的所有参数替换

%0 或 %1 第一个文件参数。例如“C:\Users\Eric\Destop\New Text Document.txt”。通常,这应该用引号引起来,并且应用程序命令行解析应该接受引号,以消除名称中带有空格的文件和不同命令行参数的歧义(这是安全最佳实践,我相信 MSDN 中提到过)。

%(其中 N 为 2 - 9),替换为第 n 个参数

%s – 显示命令

%h – 热键值

%i — 存储在共享内存句柄中的 IDList 在此处传递。

%l – 第一个参数的长文件名形式。注意,win32 应用程序将传递长文件名,win16 应用程序将获取短文件名。最好指定 %L,因为它避免了探测应用程序类型的需要。

%d – 第一个参数的桌面绝对解析名称(对于没有文件系统路径的项目)

%v – 对于无表示全部的动词,如果没有传递参数,则这是工作目录

%w – 工作目录

https://web.archive.org/web/20111002101214/http://msdn.microsoft.com/en-us/library/windows/desktop/cc144101(v=vs.85).aspx

有用的网址

答案2

我可能不明白你的问题,但是进程探索器将显示传递给每个正在运行的进程的命令行参数;它还有一个小工具,让您通过单击属于该进程的窗口来查找该进程。因此,找出执行的命令应该很容易;只需执行任何操作来运行您感兴趣的命令,然后将搜索项拖到应用程序的窗口上(或者在列表中找到它)。

例如,这是我通过右键单击资源管理器中的文件启动的记事本实例:

在此处输入图片描述

另一个选择是使用进程监控并添加事件过滤器“if手术不是进程启动然后排除“。

这将使进程监视器仅显示正在运行的进程启动列表。然后您可以执行操作,查看列表中显示的内容,然后双击它以显示命令行。

相关内容