我有一個用vb.net編寫的.exe應用程序。當我對應用程序進行快捷操作時,在桌面(或其他任何地方)說,然後點擊它們,我想以編程方式獲得該快捷方式的路徑,即。 C:/Users/xxx/Desktop/shortcut.lnk。如何在.net中獲取快捷方式(不是目標路徑)的路徑?
我想這個,所以我可以存儲雙快捷鍵:(程序+不同的cmd參數)。
我有一個用vb.net編寫的.exe應用程序。當我對應用程序進行快捷操作時,在桌面(或其他任何地方)說,然後點擊它們,我想以編程方式獲得該快捷方式的路徑,即。 C:/Users/xxx/Desktop/shortcut.lnk。如何在.net中獲取快捷方式(不是目標路徑)的路徑?
我想這個,所以我可以存儲雙快捷鍵:(程序+不同的cmd參數)。
你的桌面不會是父進程,因爲它不是一個進程,我假設資源管理器或其他東西是從快捷方式開始的。
獲取所需內容的最簡單方法是更改快捷方式,以便在啓動應用程序時將某些參數發送給您的應用程序。例如,桌面上的快捷方式可以通過字符串「桌面」發送。然後你可以把它作爲一個普通的命令行參數。
如果你已經宣佈Main
功能:
Public Shared Sub Main(ByVal args As String())
然後,它會顯示爲args
參數的字符串之一。
簡單得多,那麼當你添加一個新的快捷方式到系統時,你不必改變你的exe文件。 – 2010-06-02 08:11:09
你見過這個其他問題:http://stackoverflow.com/questions/1125958/how-do-i-discover-how-my-process-was-started? – 2010-06-01 10:05:37
現在我有,但仍然不知道如何得到我想要的。 昏暗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
從http://msdn.microsoft.com/zh-cn/netframework/aa569609.aspx#Question5: System.WMI Win32_Process有一個字段CommandLine。有關此類的詳細信息,請參閱MSDN文檔。 我看了一下,但它似乎很複雜/不知道該怎麼做.. – okkko 2010-06-01 13:36:34