Разрешить удаление файла на скрипт Ruby - PullRequest
3 голосов
/ 20 июля 2009

Я создаю небольшой скрипт ruby ​​для изменения размера изображений и сохранения их в указанном каталоге. Мне бы хотелось, чтобы приложение было максимально прозрачным.

Можно ли разрешить удаление файлов на мой скрипт Ruby на всех платформах? Например, пользователь перетаскивает файл в скрипт, который затем принимает путь файла в качестве аргумента и соответственно изменяет размер изображения - без графического интерфейса, без консоли и т. Д.

Ответы [ 4 ]

5 голосов
/ 20 июля 2009

Поведение drag & drop зависит от ОС (и в случае Linux с Window Manager), поэтому нет.

В Windows вы получаете поведение, которое вам нужно, бесплатно. Просто поместите файл .rb на рабочий стол, и файлы, перетаскиваемые на него, станут аргументами вашего сценария.

Другим простым способом интеграции с Windows является запись в запись реестра HKLM \ Software \ Classes * .jpg \ myhandler \ command с помощью команды, которую вы хотите отобразить в контекстном меню проводника Windows (если щелкнуть правой кнопкой мыши файл jpg, всплывающее меню, в котором будет находиться ваш скрипт).

Я вообще не использую drag & drop в Linux, поэтому я не знаю, как это сделать. Я ожидал бы, что у него будет больше проблем с безопасностью (права доступа должны быть правильными, ...), но вы можете получить его, создав файл .desktop, см. http://standards.freedesktop.org/desktop-entry-spec/latest/ для полного стандарта или прочитав некоторые примеры из ~ / Рабочий стол / *. Рабочий стол.

2 голосов
/ 16 июля 2012

Платформа зависит, так что здесь только для пользователей Windows и ссылки. Сохраните следующее в файл .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}"
1 голос
/ 29 ноября 2013

Вы можете использовать Утконос на OS X, чтобы создать оболочку вокруг вашего сценария.

http://sveinbjorn.org/platypus

С уважением Клаус

1 голос
/ 20 июля 2009

Такое поведение, безусловно, будет зависеть от платформы, поскольку в этом случае ОС перетаскивает информацию, а не ruby.

Итак, отвечая на ваш вопрос: нет, это невозможно.

...