我在google上做了几个教程。
我可以通过以下操作将右键菜单项添加到文件夹中:
[HKEY_CLASSES_ROOT\Directory\shell\Command]
@="TestRightClick:"
[HKEY_CLASSES_ROOT\Directory\shell\Command\Command]
@="myExecutable.exe %L"
我也需要把它添加到文件中。
1)在注册表中的哪里添加?
2)如果我选择了多个文件,我如何将参数传递给我的可执行文件?
相关内容:
How to pass in multiple file/folder paths via a rigth-click event(verb) to an executable?
4条答案
按热度按时间iibxawm41#
你可以用我的程序singleinstance来做。不涉及shell扩展。
pprl5pva2#
您要查找的关键词是“动词”或“处理程序”,而不是“事件”。
特定文件扩展名的上下文菜单 predicate 可以放置在文件类型的ProgID、感知类型键(如果文件类型具有感知类型)、AllFileSystemObjects键或基类键(*)下。
请注意,在
HKEY_CLASSES_ROOT
配置单元中写入这些键会将写入重定向到HKEY_LOCAL_MACHINE\Software\Classes
,并且需要提升的权限。如果写入HKEY_CURRENT_USER\Software\Classes
树,则可以使用标准用户权限执行此操作。由您来处理选择多个文件的情况。每个选定的文件都将启动一个应用程序示例。您可以通过检查应用程序的另一个示例是否正在运行,并使用进程间通信通知现有示例已选择其他扩展来解决此问题。
在MSDN上,请务必阅读
ldfqzlk83#
1.文件具有上下文菜单的扩展名。将Command注册表项添加到相应的扩展名或HKEY_CLASSES_ROOT* 以影响所有文件。
1.您可以使用%1将文件名传递给应用程序(与上面使用%L所指示的非常相似)。如果选择多个文件,则每个文件都将被单独调用,就像您分别右键单击每个文件一样。
我不知道有什么简单的方法可以将多个项目从右键单击上下文菜单传递到一个可执行示例。
mpbci0fu4#
请参阅GitHub SingleInstanceAccumulator,了解一个C#实现的Mutex + COPYDATA方法。
other stack-o's表示需要。
资源管理器上下文菜单配置
例如在我的系统上,为“。mov”文件,我会将上面的
FileType
替换为VLC.mov
复杂REG ADD示例
将上面的“参见命令行示例”替换为您想要的命令行。
注意:引号&环境变量必须转义,初始命令的转义工作与字符串后面的转义工作略有不同!?!
SingleInstanceAccumulator。exe用法
命令行示例
注意:初始命令必须有路径shell〉命令工作
PowerShell &临时文件
注意:-f用法
PowerShell & inline 文件列表
注:-q用法
test.ps1(带临时文件)
test.ps1(带文件数组parm)