![识别在 UI 单击后运行的命令](https://linux22.com/image/1629086/%E8%AF%86%E5%88%AB%E5%9C%A8%20UI%20%E5%8D%95%E5%87%BB%E5%90%8E%E8%BF%90%E8%A1%8C%E7%9A%84%E5%91%BD%E4%BB%A4.png)
我正在寻找与这里类似的东西:如何知道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\command
或shell\runas\command
键并创建一个名为图标的值。然后指定图标的路径。
您可能已经注意到,上下文菜单按钮的某些单词中有一个类似下划线的东西。如果您按下 Alt + 该键,则会触发该选项。这称为加速键。也可以定义它。在runas
shell 键的键的默认值或子键名称中,您可以在字母前添加一个 &,例如“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 – 工作目录
有用的网址