Getting the starting shortcut in c#

寵の児 提交于 2019-12-02 01:11:41

问题


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?


回答1:


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




回答2:


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.



来源:https://stackoverflow.com/questions/2513920/getting-the-starting-shortcut-in-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!