Как я могу позволить файлам быть отброшенными на сценарий Ruby в Windows Explorer

В Windows Explorer (Win7) я могу отбросить файл на пакет (.bat) файл, и пакетный файл выполняется с путем к перемещаемому файлу как первый параметр командной строки. Как я могу сделать то же самое со сценарием Ruby?

Я не означаю использовать аргумент в рамках сценария. Сценарий Ruby не становится выделенным как цель отбрасывания, когда файл по значку, и отбрасывание его просто переупорядочивает значки. Я хочу, чтобы это вело себя то же как пакетные файлы (или любой другой исполняемый файл).

3
задан 09.10.2010, 04:01

3 ответа

Типы файлов, которые могут иметь материал, отброшенный на них, имеют ключи в реестре для сообщения Windows, как выполнить их. Если у Вас есть расширение своего сценария, настроенное так, чтобы Ruby запустил скрипт по умолчанию, то Вы являетесь промежуточными там.

(Обязательное предупреждение: это - взлом. Питание с Вашим реестром может по-царски завинтить Ваш компьютер. Если Вы заботитесь вообще о Ваших данных и не доверяете мне (также, Вы не были должны), иметь резервное копирование перед продолжением.)

  1. Запустите редактор реестра. Это называют "regedit". (При выполнении Vista или Windows 7 Вы, возможно, должны щелкнуть правой кнопкой по нему, и "работают как администратор".)
  2. Откройте HKEY_CLASSES_ROOT\batfile\ShellEx\DropHandler. Будет GUID как значение по умолчанию. Это, оказывается, значение, используемое пакетными файлами, EXE-файлами и немногими другими. Поскольку я не знаю ни о каких COM-объектах, которые использует Ruby, мы собираемся оскорблять этого. Это маркировано в реестре как ".exe цель отбрасывания". То, что это, кажется, делает, является "запуском" сценарий, передавая имена файлов как args.
  3. Дважды щелкните" (Default)" для открытия значения. Скопируйте гуид и затем отмените из окна редактирования.
  4. Теперь найдите "RubyFile" и "RubyWFile" в HKEY_CLASSES_ROOT. Первое для консольных сценариев и последний, кажется, для сценариев GUI. При использовании другого интерпретатора Ruby, чем я делаю, или если Вы настраиваете обработчик по умолчанию сами, можно найти ключи "rbfile" и/или "rbwfile" вместо этого.
  5. Щелкните правой кнопкой по одному из ключей и создайте новый ключ там под названием "ShellEx", если он уже не существует. Затем создайте другой ключ в том новом, названном "DropHandler".
  6. Отредактируйте значение по умолчанию в том, который ключ DropHandler, и вставляет в GUID, который Вы скопировали на шаге 3. Нажать "OK".
  7. Повторите шаги 5 и 6 с другим ключом.

После того как это сделано, необходимо смочь перетащить файлы на сценарий.

4
ответ дан 07.12.2019, 23:28

На основе ответа @cHau вот reg файл, который настроит поддержку отбрасывания сценариев Ruby (не полностью протестированный, вероятно, уничтожит Ваш компьютер) (суть):

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}"
2
ответ дан 07.12.2019, 23:28

Попробуйте установку Ruby, поскольку приложение по умолчанию для этого пишет сценарий, при помощи расширения файла.

Посмотрите здесь, как сделать это.

0
ответ дан 07.12.2019, 23:28

Теги

Похожие вопросы