Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] как сделать относительную ссылку (*.lnk)

Ответить
Настройки темы
Разное - [решено] как сделать относительную ссылку (*.lnk)
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Не знал, в какую тему отнести. Сюда показалось наиболее логичным. Вопрос такой: можно ли, а если можно то как создать в винде на диске относительную ссылку?
Например, стуктура файлов:
Код: Выделить весь код
[+] SOME_ROOT
 |-[+] Рабочее место
 |  |-[+] Cисадмин
 |  |  |-- codecs.lnk   -> SOME_ROOT/Хранилище/codecs
 |  |  '-- nero.lnk     -> SOME_ROOT/Хранилище/nero
 |  '--[-] Бухгалтер
 |-[+] Video
 |  |-- powerdvd.lnk    -> SOME_ROOT/Хранилище/powerdvd
 |  '-- codecs.lnk      -> SOME_ROOT/Хранилище/codecs
 |-[+] Audio
 |  |-- powerdvd.lnk    -> SOME_ROOT/Хранилище/powerdvd
 |  '-- codecs.lnk      -> SOME_ROOT/Хранилище/codecs
 |-[+] CD/DVD
 |  |-- powerdvd.lnk    -> SOME_ROOT/Хранилище/powerdvd
 |  '-- nero.lnk        -> SOME_ROOT/Хранилище/nero
 |-[+] Хранилище
 |  |--[-] qip
 |  |--[-] nero
 |  |--[-] codecs
 |  |--[-] nero
 ...
Чтобы куда б не примонтировать (на какую-нить букву диска или папку), всегда бы при нажатии на ярлык правильно находился путь.
Задача возникла из следующих соображений: есть архив, лень использовать специальный софт, зато нравится ходить по папочкам. Когда программу можно отнести к разным группам - постоянно забываю, где искать. Потом ещё возникает вопрос, куда помещать универсальную программу, которую вроде и туда и сюда поместить хочется.

Отправлено: 14:03, 30-11-2008

 
pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Нашёл 2 решенния:
1. %windir%\system32\RunDll32.exe shell32.dll,ShellExec_RunDLL ..\photo
http://doitq.blogsome.com/2007/01/23/p118/

2. explorer ..\photo

Ещё хочу. Попроще и применительней к задаче

Отправлено: 14:21, 30-11-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


А такой вариант?
Цитата Vadikan:
На жестком диске - Чисто символически »
На счёт того будет ли работать после перемонтировки не уверен.

Поздравляю с 500м постом!

Последний раз редактировалось Admiral, 30-11-2008 в 15:22.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:06, 30-11-2008 | #3

pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


как её сделать? хочу попробовать Windows XP sp2
а, сори, увидел утилиту junction. Щас попробуем

Отправлено: 15:18, 30-11-2008 | #4

pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Где скачать утилиту после пары тыков мышкой не нашёл. Зато нашёл в МСДН про жёсткие ссылки, сделал утилитку:
Код: Выделить весь код
#include <windows.h>
#include <iostream>
using namespace std;


int main(int argc, char**argv)
{
    if (2 < argc)
    {
    	typedef int __stdcall (*CreateHardLink_type)(char*, char*, SECURITY_ATTRIBUTES*);

    	CreateHardLink_type CreateHardLink = reinterpret_cast<CreateHardLink_type>(
		    	GetProcAddress(GetModuleHandle("kernel32.dll"), "CreateHardLinkA"));
	
		if (CreateHardLink)
		{
			int result = CreateHardLink(argv[1], argv[2], 0);
			if (!result) clog << "os error " << GetLastError() << "\n";
	        return result;
		}
		else
		{
			cout << "cannot find kernel32.dll::CreateHardLinkA function\n";
			return 0;
		}       
    }

    cout << "hard_link.exe \"link_name\" \"file_path\"\n"
            "creates NTFS hard link to file using CreateHardLink function\n";
            
    return 0;
}
Работает зашибенно! По сетке тоже. Только ссылаться можно внутри одного тома
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:07, 30-11-2008 | #5


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


pva, в записи блога Vadikan'а приведенна ссылка http://technet.microsoft.com/en-us/s.../bb896768.aspx, вот прямая http://download.sysinternals.com/Files/Junction.zip
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:35, 30-11-2008 | #6

pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


junction не работает с файлами а CreateHardLink не захотела с папками

Отправлено: 20:10, 30-11-2008 | #7


Аватара для Delirium

Ветеран


Сообщения: 5625
Благодарности: 935

Профиль | Отправить PM | Цитировать


Цитата pva:
junction не работает с файлами а CreateHardLink не захотела с папками »
А ты проверяй перед созданием, если файл, то используй CreateHardLink и наоборот

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:00, 01-12-2008 | #8


Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


pva, вероятно Руссинович использовал не документированные функции.
Обзор исходника одноимённой проги Windows 2000 Junction Points там как раз говорится про недокументированный подход.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:52, 01-12-2008 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] как сделать относительную ссылку (*.lnk)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Проблема с Ярлыками .lnk Lanzzar Microsoft Windows 2000/XP 33 12-07-2015 09:04
[решено] Помогите сделать ссылку на скачивание файла dubik Вебмастеру 9 12-02-2009 15:05
[решено] Как открывать ссылку автоматически в новом окне? Yewgeniy Вебмастеру 3 04-04-2007 22:10
Как сделать звук при наведении на ссылку? Bono Вебмастеру 2 29-05-2006 00:35
как сделать ссылку назад lehha Вебмастеру 3 11-09-2002 05:58




 
Переход