Страница 1 из 1

Как создать ярлык с "относительной" ссылкой?

Добавлено: 29 мар 2010 10:44, Пн
UncleFather

Проблема:
Ярлыки в Windows используют абсолютные пути. То есть использовать ярлыки на флешке, или в какой-то структуре папок, которая может менять свое местоположение, нельзя. Это понятно: если мы задали путь E:\папка, а на другом компьютере наш флеш-драйв поимел букву диска уже M, то путь неверен, и ничего тут не попишешь.Какие решения? Их, в общих чертах, два: использовать сторонние ланчеры или командные файлы. Первое решение недостаточно гибко, а второе... Не терплю мигающие окна, которые неизбежно порождает интерпретатор cmd.exe. Есть еще vb и js скрипты. Да, это посимпатичней. Но все-таки...
Решение:
Решение состоит в вызове функции соответствующей библиотеки. Поскольку библиотеки (dll) сами по себе из командной строки не вызываются, следует использовать команду (имя программы, на самом деле) rundll32. То есть, создаем обычный ярлык, в строке запуска (поле Объект в свойствах) которого пишем строку вида: %windir%\system32\RunDll32.exe shell32.dll,ShellExec_RunDLL ".\папка\файл". Обратите внимание на точку перед первым слешем. Обязательно оставьте поле Рабочая папка пустым, и путь будет читаться относительно положения самого ярлыка.
Для перехода в родительскую папку вместо одной точки в начале надо ставить две, "..\..\" - на два уровня вверх и так далее.
Оригинал статьи