10

有关的:

如何在 Windows 中的文件夹和文件的右键单击事件中添加新项目?

通过将注册表项添加到 HKEY_CLASSES_ROOT\*,我向所有文件添加了自定义右键单击动词。最终结果看起来像这样

HKEY_CLASSES_ROOT*\Shell\TestRightClick\Command

-------默认 = c:\RightClickTest.exe "%1"

问题:选择多个文件时C:\ rightclicktest.exe将被调用几次(选定文件的数量)

我需要什么:将多个文件路径传递给一个可执行文件

4

2 回答 2

8

如果您正在寻找一种快速而肮脏的解决方法,您可以在 '%AppData%\Microsoft\Windows\SendTo' 中创建可执行文件的快捷方式现在您可以选择一堆文件,右键单击,选择发送到,然后您的应用。

这会将所有选定的文件作为单独的命令行选项传递给您的应用程序的一个实例...请记住,命令行限制为 32767 个字符,这将限制您可以使用此方法传递给应用程序的文件数量,并且确保您的程序不会尝试打开它不知道如何处理的文件。从长远来看,Factor Mystic 的方法要好得多。

于 2011-03-17T21:52:15.790 回答
2

正如我在上一个问题中所说,您必须在应用程序中对此保持智能。如果您不使用 shell 扩展,则每个选定的文件都会启动一个程序实例。您的一般策略可能是这样的:

  1. 使用文件参数 ( %1) 启动应用程序时,检查应用程序的任何实例是否已在运行。
  2. 如果另一个实例正在运行,请打开该应用程序的某种进程间通信 (IPC) 通道。
  3. 将此实例的文件参数传递给主实例。
  4. 在主程序中编写逻辑以解决在运行时接收此信息的问题。
于 2009-12-01T18:00:01.250 回答