Obteniendo el atajo de inicio en c #

Digamos que tengo un ejecutable y cuando se inicia quiero saber cómo se inició. Es decir. Me gustaría saber si se inicia con un acceso directo o directamente. Con este:

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

Puedo obtener la ruta del ejecutable, pero esto siempre es el mismo, incluso si se inicia con un atajo.

Digamos que mi ejecutable se llama c: \ text.exe y lo inicio directamente, luego test = 'c: \ test.exe' Si creo un acceso directo, es decir, c: \ shortcut.lnk (con el destino c: \ test.exe ) Quiero que la prueba sea 'c: \ shortcut.exe' pero es 'c: \ test.exe'

Sospecho firmemente que esto es imposible porque el sistema operativo maneja la parte de acceso directo y el ejecutable nunca puede ver la diferencia, pero ¿tal vez alguien tiene una idea creativa?

Respuestas a la pregunta(2)

Su respuesta a la pregunta