我正在尝试为 Windows (7) 资源管理器创建一个自定义上下文菜单条目,它将通过一个命令发送所有选定的项目。
我在MSDN 文档中读到过关于MultiSelectModelPlayer值的内容,但这似乎不起作用。这就是我尝试过的:
这对于一件物品来说效果很好。
但是,当选择了许多项目时,将为每个项目启动一次脚本。相反,我希望只有一个实例来接收所有选定的项目。
我尝试在“MYVERB”和“COMMAND”下添加字符串值“MultiSelectModel”->“Player”,但行为没有改变。
我想要做的事情是否仅通过脚本和注册表就可以实现?我究竟做错了什么?
windows windows-explorer context-menu shell-script desktop-customization
网上有一些解决方案,但大多数只是在您右键单击文件夹时添加命令。我已经找到以管理员身份运行的解决方案(其工作两者)在这里。但它仅适用于管理员访问。
对我来说,Chrome 的上下文菜单现在是这样的:
是否可以移动Inspect Element到菜单底部?或者是否可以删除底部的两个菜单项?我从不从浏览器向 Evernote 添加内容,也不使用 iTunes 的 Spoken Track 功能。我知道这篇文章,但这些解决方案是专门针对 Windows 的。
当 Windows Media Player 是 Windows 中的默认播放器时,某些音乐文件的右键单击上下文菜单包含一个名为 的项目"Add to Windows Media Player list"。这是 WMP 的标准配置,其中包含大量此类上下文菜单项。然而,与其他上下文菜单项不同,它们通常相对容易删除,因为它们需要在相同的常用位置删除一些子键,这个特定的项目很难找到,我无法找到通过 Google 或本网站查找任何有关此操作的信息。
那么,如何摆脱“添加到 Windows Media Player 列表”上下文菜单项呢?
windows-registry windows-7 windows-explorer windows-media-player context-menu
当我右键单击驱动器并选择时,我想打开第三方(即:Rufus)应用程序format..
我该怎么做?
对于像这样的项目Notepad,我可以只交换 Windows 系统文件夹中的文件,这在这种特殊情况下似乎不起作用,或者至少,我还没有找到这样做的方法。
这是this one的后续问题。如该答案所示,ProgrammaticAccessOnly可用于隐藏某些上下文菜单项,而无需禁用其底层或相关功能。
通过这种方式,它似乎是LegacyDisable字符串值的更有用的模拟,因为它可以用于以比破坏性更小的方式禁用注册表功能LegacyDisable。
但是,与许多其他注册表值-数据对一样,很难从 Microsoft 或其他权威来源获得有关该值及其工作原理的实际文档。我能在不同的论坛帖子之外找到以下内容,来自此处的教程:
ProgrammaticAccessOnly 是一个特殊值,它隐藏上下文菜单条目,但允许程序在需要时访问它。
这远不全面,我怀疑该值的范围仅限于上下文菜单。例如,这里至少ProgrammaticAccessOnly=Apartment详细介绍了一次,没有解释它的作用或其他数据类型。
ProgrammaticAccessOnly注册表中的字符串值究竟是如何工作的?总是使用它有什么注意事项LegacyDisable吗?另外,可以使用它的所有可能数据类型的列表是什么?
所以我刚刚在我的桌面上创建了一个带有新扩展名的文件,这就是它的上下文菜单的样子:
我可以使用键盘上的菜单键调出上下文菜单,然后我实际上可以通过按键来选择上下文菜单中的一些项目。当然,这让我有机会创建一些键盘快捷键。但是,我不太明白它们是如何工作的。以下面的例子为例。
如果我创建一个名为“item.newextension”的文件,然后导入以下注册表文件:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.newextension\shell\Edit\command]
@="notepad.exe \"%1\""
[HKEY_CURRENT_USER\SOFTWARE\Classes\SystemFileAssociations\.newextension\shell\Contemplate\command]
@="mspaint.exe \"%1\""
Run Code Online (Sandbox Code Playgroud)
我得到了一些不一致和有趣的结果。为了在同一页面上,现在我的上下文菜单如下所示:
如果我打开上下文菜单并按“e”键,记事本会立即打开。此外,如果我打开上下文菜单并按“c”键,上下文菜单会在“考虑”和“复制”之间切换,但在我按 Enter 之前不会选择任何一个。
所以我意识到,如果你仔细观察,上下文菜单条目中的每个字母下方都有一条小线,对应于需要按下哪个键来选择它,当有重叠时,重复按下该键会在两者之间切换。所以我有几个问题:
我在 Windows 10 1803 Build 17134 上供参考。
windows windows-registry keyboard-shortcuts context-menu windows-10
我想为多个选定的文件创建一个 Windows 资源管理器上下文菜单操作。
HKEY_CLASSES_ROOT\*\shell\MyAction\command我创建了一个带有字符串值的键
C:\python37\python.exe "c:\test\test.py" "%1"
Run Code Online (Sandbox Code Playgroud)
该脚本目前仅显示命令行参数(用于调试目的):import sys; print(sys.argv); input()
当我在资源管理器中选择两个文件 a.txt并b.txt右键单击“MyAction”时,然后:
我想让这个脚本被调用一次,并且传递给Python的命令行参数应该是
["c:\test\test.py", "c:\a.txt", "c:\b.txt"]
Run Code Online (Sandbox Code Playgroud)
相反,我将此脚本调用两次(每个文件独立一次),并且传递的命令行参数是:
["c:\test\test.py", "c:\a.txt"]
["c:\test\test.py", "c:\b.txt"]
Run Code Online (Sandbox Code Playgroud)
如何使上下文菜单操作仅在选择 2 个文件时调用该命令一次,并将这 2 个文件作为命令行参数?
TL;DR我希望启动此功能:
C:\python37\python.exe "c:\test\test.py" "a.txt" "b.raw" "file_with_noext"
Run Code Online (Sandbox Code Playgroud)
并不是:
C:\python37\python.exe "c:\test\test.py" "a.txt"
C:\python37\python.exe "c:\test\test.py" "b.raw"
C:\python37\python.exe "c:\test\test.py" "file_with_noext"
Run Code Online (Sandbox Code Playgroud)
对多个文件使用上下文菜单操作时。
注意:打开多个文件?它的答案并不能解决问题;我尝试过HKEY_CLASSES_ROOT\SystemFileAssociations\*\shell\MyAction\command,但当我选择多个文件(例如 、 、 和 )时,此菜a.txt单项b.raw不会file_with_noext出现testdir\。
使用vimperator 时,如何执行相当于右键单击图像并单击“复制图像位置”的操作?
firefox keyboard-shortcuts vimperator context-menu browser-addons
context-menu ×10
windows ×5
windows-7 ×4
regedit ×2
windows-10 ×2
chromium ×1
firefox ×1
formatting ×1
macos ×1
powershell ×1
shell-script ×1
vimperator ×1