Question

Lets say that I have an executable and when it is started I want to know how it's started. I.e. I would like to know if it is started with a shortcut or directly. With this:

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

I can get the path of the executable, but this is always the same, even if it's started by a shortcut.

Lets say my executable is named c:\text.exe and I start it directly, then test = 'c:\test.exe' If I create a shortcut i.e. c:\shortcut.lnk (with target c:\test.exe) I want test to be 'c:\shortcut.exe' but it is 'c:\test.exe'

I strongly suspect this to be impossible because the OS handles the shortcut part and the executable never can see the difference, but maybe someone has a creative idea?

Was it helpful?

Solution

This won't work in general, but if you are creating the shortcut, you could add a command line parameter to identify it.

OTHER TIPS

Your suspicions are correct, with the operating system hiding the mechanics from you.

It is possible to get the process that started you, however. this won't help you differentiate whether you were started from a link in the start menu, vs. being doubled clicked on in the explorer window though.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top