【发布时间】:2017-05-03 11:26:14
【问题描述】:
我已经添加了一个右键单击选项来使用我的 c++ 程序打开文件:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\Open With MyProgram]
"Icon"="\"C:\\Program Files (x86)\\myProgram.exe\""
[HKEY_CLASSES_ROOT\*\shell\Open With MyProgram\command]
@="\"C:\\Program Files (x86)\\myProgram.exe\" \"%1\""
这工作得很好。当我选择超过 15 个文件时,右键单击选项会消失。 我已经阅读了有关 MultipleInvokePromptMinimum 的以下方法:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"MultipleInvokePromptMinimum"=dword:00001388
这可以完成工作,唯一的问题是我不想为超过 15 个文件启用其他“打开”或“打印”右键单击选项,只是我的自定义文件。
(例如,“使用 Notepad++ 编辑”右键单击选项对超过 15 个文件启用,而无需更改 MultipleInvokePromptMinimum)
实现这一目标的最佳方法是什么?提前致谢。
【问题讨论】:
-
您是否尝试将 MultiSelectModel 设置为 Player? msdn.microsoft.com/en-us/library/windows/desktop/…
-
谢谢!我将 MultiSelectModel 设置为 Player,现在我可以通过右键单击选项打开多达 100 个文件。对于超过 100 个文件,该选项仍然出现,但如果我选择它,它只会打开 1 个文件。我想我必须将我的应用程序实现为“COM”而不是“Legacy”才能用我的应用程序打开无限数量的文件。你知道如何将我的程序实现为 COM 吗?
-
我认为最简单的方法是创建 IDropTarget shell 扩展,然后将子项“DropTarget”添加到您的子项“Open With MyProgram”中。在您的 IDropTarget shell 扩展中,您可以做任何您想做的事情。例如,您可以创建带有文件列表的文本文件并将其传递给您真正的“旧版”应用程序。
-
tk_ - 你是如何用上下文菜单打开 100 个文件的?我正在尝试实现这一点,但我的应用程序打开了多个实例。我正在尝试选择多个图像并单击我的菜单,这会将图像列表传递给应用程序。
标签: windows registry contextmenu windows-shell