В моем установщике Inno Setup мне нужно убедиться, что ярлык для определенного файла присутствует в папке. Имя ярлыка произвольно и не под моим контролем. Я знаю только, в каком файле он должен указывать. Если ярлык отсутствует, мне нужно сгенерировать ярлык. Если он уже присутствует, он не должен быть создан снова.Проверьте наличие ярлыка в Inno Setup
Я предполагаю, что это возможно, чтобы выполнить итерацию всех ярлыков в соответствующей папке и проверить, к какому файлу они указывают. В a comment на ответ Shared Shortcuts/Icons указан интерфейс IShellLink
, но я не знаю, как сделать его доступным в разделе Code
. (Uses ShlObj;
не признается)
Есть ли у кого-нибудь предложение, как я мог бы решить эту проблему?
работал отлично, как только я понял, что мне нужно использовать версию Юникода установки Inno, как указано в верхнем тексте примера CodeAutomation2.iss. –
Я заметил еще две вещи: Первый: флаг SLGP_UNCPRIORITY помечен как «Неподдерживаемый, не используйте» на веб-странице Microsoft. Второе: возвращаемое значение функции GetLinkFileTarget никогда не сравнивается с фактическим путем, на который должна указывать ссылка. Глядя на возвращенный путь в отладчике, единственное различие, которое я вижу, это то, что возвращенный путь не имеет «в конце». Кроме того, когда я пытаюсь напечатать htis строку в журнале, каждый текст после% s этой строки игнорируется. –
Я [исправил ответ] (http://stackoverflow.com/posts/34221987/revisions). Для получения дополнительной информации см., Например, [Как вернуть строку из dll в скрипт inno] (http://stackoverflow.com/q/21574264/850848) –