Я написал простую программу синхронизации файлов на основе FTP. Настройки которых можно сохранить в файле XML. Я хочу, чтобы пользователи могли быстро открывать программу, используя различные конфигурации. Поэтому я настроил программу, чтобы она могла читать путь к файлу конфигурации через аргумент командной строки. Таким образом, ярлыки могут быть созданы на рабочем столе на основе различных файлов конфигурации. Сейчас я пытаюсь добавить функцию, которая будет автоматически создавать ярлык для определенного файла конфигурации.
Я пытался использовать пример из этого поста , используя ShellLink.cs. И я также попытался использовать IWshRuntimeLibrary, как описано здесь . Я могу создать ярлык, но «Тип цели» ярлыка в окне свойств заканчивается пустым в новом ярлыке. Если дважды щелкнуть ярлык, я получаю окно с ошибкой из-за проблем с поиском FooBar.xml по указанному пути. Похоже, он не понимает, что должен запускать приложение, а не открывать файл.
Теперь, если я открою свойства нового ярлыка и изменим что-то в целевом поле, а затем вернусь обратно. Например, удалите x из xml, а затем просто добавьте его обратно. После нажатия OK значок ярлыка сразу переключается на значок моего приложения и работает правильно при двойном щелчке.
Похоже, что когда я редактирую ярлык вручную, он заставляет Windows проверять, должен ли ярлык назначаться целевым типом приложения, и переключает его.
Так как же с помощью C # создать новый ярлык с целевым типом приложения, если целевой путь не заканчивается на .exe?