获取c#中的起始快捷方式

让我们说我有一个可执行文件,当它启动时,我想知道它是如何启动的。 即我想知道它是用快捷方式还是直接启动的。 有了这个:

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

我可以获得可执行文件的路径,但这始终是相同的,即使它是由快捷方式启动的。

让我说我的可执行文件名为c:\ text.exe,我直接启动它,然后test =’c:\ test.exe’如果我创建一个快捷方式,即c:\ shortcut.lnk(目标c:\ test.exe) )我想测试’c:\ shortcut.exe’,但它是’c:\ test.exe’

我强烈怀疑这是不可能的,因为操作系统处理快捷方式部分,可执行文件永远不会看到差异,但也许有人有创意?

这通常不起作用,但是如果要创建快捷方式,则可以添加命令行参数来标识它。

您的怀疑是正确的,操作系统会隐藏您的机制。

但是,有可能获得启动你的过程 。 这不能帮助您区分是否从开始菜单中的链接启动,而不是在浏览器窗口中双击。