2010-06-01 90 views
0

我有一个用vb.net编写的.exe应用程序。当我对应用程序进行快捷操作时,在桌面(或其他任何地方)说,然后点击它们,我想以编程方式获得该快捷方式的路径,即。 C:/Users/xxx/Desktop/shortcut.lnk。如何在.net中获取快捷方式(不是目标路径)的路径?

我想这个,所以我可以存储双快捷键:(程序+不同的cmd参数)。

+0

你见过这个其他问题:http://stackoverflow.com/questions/1125958/how-do-i-discover-how-my-process-was-started? – 2010-06-01 10:05:37

+0

现在我有,但仍然不知道如何得到我想要的。 昏暗PC作为的PerformanceCounter =新的PerformanceCounter( “过程”, “创建进程ID”,Process.GetCurrentProcess.ProcessName) 昏暗SDIC作为Specialized.StringDictionary = Process.GetProcessById(CTYPE(pc.NextValue,整数))。StartInfo的.EnvironmentVariables 我试过这个,在sDic中没有包含“Desktop”的值(我把一个快捷方式放到了我的桌面上)。 – okkko 2010-06-01 13:16:09

+0

从http://msdn.microsoft.com/zh-cn/netframework/aa569609.aspx#Question5: System.WMI Win32_Process有一个字段CommandLine。有关此类的详细信息,请参阅MSDN文档。 我看了一下,但它似乎很复杂/不知道该怎么做.. – okkko 2010-06-01 13:36:34

回答

1

你的桌面不会是父进程,因为它不是一个进程,我假设资源管理器或其他东西是从快捷方式开始的。

获取所需内容的最简单方法是更改​​快捷方式,以便在启动应用程序时将某些参数发送给您的应用程序。例如,桌面上的快捷方式可以通过字符串“桌面”发送。然后你可以把它作为一个普通的命令行参数。

如果你已经宣布Main功能:

Public Shared Sub Main(ByVal args As String()) 

然后,它会显示为args参数的字符串之一。

+0

简单得多,那么当你添加一个新的快捷方式到系统时,你不必改变你的exe文件。 – 2010-06-02 08:11:09

相关问题