Получение стартового ярлыка в c # - PullRequest
3 голосов
/ 25 марта 2010

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

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»

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

Ответы [ 2 ]

2 голосов
/ 25 марта 2010

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

1 голос
/ 25 марта 2010

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

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

...