Как передать несколько путей к файлам / папкам через событие щелчка правой кнопкой мыши (глагол) к исполняемому файлу?

Связанные с:

Как добавить новые элементы в событие щелчка правой кнопкой мыши на Папки и файлы в Windows?

Я добавил пользовательский глагол правой кнопкой мыши ко всем файлам, добавив ключи реестра в HKEY_CLASSES_ROOT\*. Конечный результат выглядит так

HKEY_CLASSES_ROOT * \ Shell \ TestRightClick \ Command

------- По умолчанию = c:\RightClickTest.exe "%1"

Проблема: при выборе нескольких файлов c: \ RightClickTest.exe будет вызываться несколько раз (количество выбранных файлов)

Что мне нужно: передать несколько файловых путей в один исполняемый файл

2 ответа

Решение

Как я уже говорил в предыдущем вопросе, вы должны понимать это в своем приложении. Один экземпляр программы будет запущен для каждого выбранного файла, если вы не используете расширение оболочки. Ваша общая стратегия может быть такой:

  1. Когда приложение запускается с параметром файла (%1), проверьте, запущен ли какой-либо экземпляр приложения.
  2. Если запущен другой экземпляр, откройте какой-либо канал межпроцессного взаимодействия (IPC) для этого приложения.
  3. Сообщите параметр файла этого экземпляра основному экземпляру.
  4. Напишите логику в основной программе, чтобы адрес получал эту информацию во время работы.

Если вы ищете быстрый и грязный обходной путь, вы можете создать ярлык для вашего исполняемого файла в "%AppData%\Microsoft\Windows\SendTo". Теперь вы можете выбрать группу файлов, щелкнуть правой кнопкой мыши, выбрать "Отправить", и ваш приложение.

Это передаст все выбранные файлы в качестве отдельных параметров командной строки одному экземпляру вашего приложения... имейте в виду, что существует ограничение в 32767 символов в командной строке, которое ограничит количество файлов, которые вы можете передать в ваше приложение, используя этот метод, и убедитесь, что ваша программа не пытается открывать файлы, с которыми она не знает, что делать. В конечном счете, метод Фактора Мистика намного лучше.

Другие вопросы по тегам