Obtendo o atalho inicial em c #

Digamos que eu tenha um executável e, quando iniciado, quero saber como ele foi iniciado. I.e. Gostaria de saber se é iniciado com um atalho ou diretamente. Com isso:

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

Eu consigo o caminho do executável, mas é sempre o mesmo, mesmo que seja iniciado por um atalho.

Digamos que meu executável se chame c: \ text.exe e eu o inicie diretamente, então test = 'c: \ test.exe' Se eu criar um atalho, por exemplo, c: \ shortcut.lnk (com o destino c: \ test.exe ) Quero que o teste seja 'c: \ shortcut.exe', mas seja 'c: \ test.exe'

Eu suspeito fortemente que isso seja impossível porque o sistema operacional lida com a parte do atalho e o executável nunca pode ver a diferença, mas talvez alguém tenha uma ideia criativa?

questionAnswers(2)

yourAnswerToTheQuestion