3

假设我有一个可执行文件,当它启动时,我想知道它是如何启动的。即我想知道它是从快捷方式开始还是直接开始。有了这个:

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

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

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

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

4

2 回答 2

2

这通常不起作用,但如果您正在创建快捷方式,您可以添加一个命令行参数来识别它。

于 2010-03-25T08:37:27.193 回答
1

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

但是,可以获取启动您的过程。这不会帮助您区分您是从开始菜单中的链接开始,还是在资源管理器窗口中双击。

于 2010-03-25T08:29:08.320 回答