Есть ли способ для программы Windows узнать, с какого ярлыка (т.е. файла .lnk), если он есть, был вызван, чтобы он мог выбрать значок ярлыка?
Вы можете позвонить GetStartupInfo(), чтобы заполнить структуру STARTUPINFO. Если установлен флаг STARTF_TITLEISLINKNAME, поле STARTUPINFO::lpTitle содержит путь к файлу .lnk.
GetStartupInfo()
STARTUPINFO
STARTF_TITLEISLINKNAME
STARTUPINFO::lpTitle
.lnk
(Это был недокументированный в течение длительного времени. Вероятно, он работает вплоть до Win95).
См. Эту тему http://social.msdn.microsoft.com/Forums/en-IE/csharplanguage/thread/31cc117e-7726-475c-b9e4-b8041409ce85
Я думаю, что параметры строки cmd - единственный путь.