Я написал программное обеспечение Windows, и я связал расширение файла с этой программой. Когда я дважды щелкаю файл данных, моя программа запускается и открывает файл. Пока это работает. Но когда я выбираю несколько файлов, а затем «Открыть» в контекстном меню, запускаются несколько экземпляров моей программы, один экземпляр для одного файла. Я хочу, чтобы Windows открывала ВСЕ файлы с одним экземпляром моей программы. Возможно ли это без реализации обработчика одного экземпляра в моей программе?Как передать несколько связанных файлов в программу?
MyFileType/shell/open/command
В настоящее время в реестре выглядит следующим образом:
"C:\Program Files\MyApp\MyApp.exe" "%1"
Может быть, есть какой-то специальный маркер/Variable я должен использовать вместо «% 1», чтобы он работал? В Linux я должен использовать% f для одного файла и% F для списка файлов. Есть что-то подобное в Windows?
(Недостаточно места в этих комментариях, поэтому я разделил его на три): Первый абзац: Dont 'get it. Извините, я не разработчик Windows. Мое приложение не зависит от платформы и написано на Java. Это всего лишь EXE-файл, который открывает все файлы, которые были указаны как аргументы командной строки. Не знаю, что такое SHCreateShellItemArrayFromDataObjet и как я могу это сделать в Java. И насколько я знаю, я уже использую глагол оболочки по умолчанию («open» в этом случае). – kayahr
Второй абзац: я пробовал этот OpenWithList, но он не работает, и в документации говорится, что это для регистрации нескольких приложений для одного и того же типа файла. Это не то, что мне нужно. Я уже связал свое приложение с типом файла, и оно работает. Я просто не хочу, чтобы Windows открывала мое приложение несколько раз, когда я открывал список файлов за один раз. – kayahr
Третий абзац: В моем вопросе я написал, что хочу избежать этой проблемы, но если Windows действительно не сможет передать список файлов программе, я должен сделать это вот так. – kayahr