启用将文件拖放到Ruby脚本上

我正在创建一个小的ruby脚本来调整图像大小并将它们保存在指定的目录中。 我希望应用程序尽可能透明。

是否可以允许文件在所有平台上放到我的Ruby脚本中? 例如,用户将文件拖到脚本上,然后将文件路径作为参数并相应地调整图像大小 – 没有GUI,没有控制台等。

拖放的行为取决于操作系统(在Window Manager的Linux中),所以没有。

在Windows中,您可以免费获得所需的行为。 只需在桌面上放一个.rb文件,拖到它上面的文件就是你脚本的参数。

与Windows集成的另一种简单方法是使用要在Windows资源管理器的上下文菜单中显示的命令写入注册表项HKLM \ Software \ Classes * .jpg \ myhandler \ command(右键单击jpg文件将弹出菜单这将在菜单中有你的脚本)。

我根本不在Linux中使用拖放操作,因此我不知道如何在那里执行此操作。 我希望它有更多的安全问题(权限必须正确,……)但你可以通过创建.desktop文件来实现,请参阅http://standards.freedesktop.org/desktop-entry-spec/latest/对于完整的标准,或从〜/ Desktop / *。desktop中读取一些示例。

平台dependend,所以这里只适用于windowsusers和reference。 将以下内容保存到.reg文件并通过双重加载来加载它,在Windows Vista和7上进行测试

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\rbfile\ShellEx\DropHandler] @="{86C86720-42A0-1069-A2E8-08002B30309D}" [HKEY_CLASSES_ROOT\rbwfile\ShellEx\DropHandler] @="{86C86720-42A0-1069-A2E8-08002B30309D}" [HKEY_CLASSES_ROOT\RubyFile\ShellEx\DropHandler] @="{86C86720-42A0-1069-A2E8-08002B30309D}" [HKEY_CLASSES_ROOT\RubyWFile\ShellEx\DropHandler] @="{86C86720-42A0-1069-A2E8-08002B30309D}" 

这种行为肯定是特定于平台的,因为在这种情况下操作系统实现了拖放,而不是由ruby实现。

所以回答你的问题:不,这是不可能的。

您可以在os x上使用platypus来创建脚本周围的包装器。

http://sveinbjorn.org/platypus

问候克劳斯