Получение начального ярлыка в С#

Допустим, у меня есть исполняемый файл, и когда он запускается, я хочу знать, как он запускается. т.е. Я хотел бы знать, запускается ли он с ярлыка или напрямую. С этим:

string test = Environment.GetCommandLineArgs()[0];

Я могу получить путь к исполняемому файлу, но он всегда один и тот же, даже если он запускается с помощью ярлыка.

Допустим, мой исполняемый файл называется c:\text.exe, и я запускаю его напрямую, затем test = 'c:\test.exe' Если я создаю ярлык, т.е. c:\shortcut.lnk (с целью c:\test.exe ) Я хочу, чтобы test был "c:\shortcut.exe", но это "c:\test.exe"

Я сильно подозреваю, что это невозможно, потому что ОС обрабатывает часть ярлыков, а исполняемый файл никогда не видит разницы, но, может быть, у кого-то есть творческая идея?


person Flores    schedule 25.03.2010    source источник


Ответы (2)


Обычно это не работает, но если вы создаете ярлык, вы можете добавить параметр командной строки для его идентификации.

person Malcolm Post    schedule 25.03.2010
comment
Просто, но это навело на мысль. Спасибо - person Flores; 25.03.2010

Ваши подозрения верны, операционная система скрывает от вас механику.

Можно получить процесс, который вас запустил , тем не мение. это не поможет вам отличить, были ли вы запущены по ссылке в меню «Пуск» или по двойному щелчку в окне проводника.

person Rowland Shaw    schedule 25.03.2010