我已經編寫了一個簡單的基於FTP的文件同步程序。其設置可以存儲在XML文件中。我希望用戶能夠使用各種配置快速打開程序。所以我設置了程序,以便能夠通過命令行參數讀取配置文件的路徑。這種方式可以基於不同的配置文件在桌面上創建快捷方式。現在我試圖添加一個功能,它會自動爲特定的配置文件創建快捷方式。如何在C#中使用命令行參數創建應用程序快捷方式(.lnk文件)
我試過使用ShellLink.cs的this post的例子。我也嘗試使用IWshRuntimeLibrary,如here所述。我可以創建快捷方式,但屬性窗口中快捷方式的「目標類型」最終在新快捷方式中變爲空白。如果我雙擊快捷方式,我會從窗口收到一個錯誤窗口,它有問題在提供的路徑中找到FooBar.xml。所以它似乎沒有意識到它應該啓動一個不打開文件的應用程序。
現在,如果我打開新快捷方式的屬性並更改目標字段中的某些內容,然後將其更改回來。例如,從xml中刪除x,然後將其添加回來。點擊確定後,快捷方式的圖標會立即切換到我的應用程序的圖標,並在雙擊時正常工作。
因此,當我手動編輯快捷方式時,它會強制窗口檢查快捷方式的目標類型是否爲應用程序並切換它。
那麼,如何通過C#在目標路徑不以.exe結尾的情況下使用目標類型的應用程序創建新的快捷方式?
我不認爲這是可能的。你的FTP程序不是.exe嗎?您指定命令行參數shoudl的事實仍然允許您使用應用程序目標類型創建快捷方式。我發佈了一個答案,這個答案對我來說正確,使用IWshRuntimeLibrary,但在重新閱讀您的問題後被刪除。我可以再次發佈,如果這確實是你想要做的 – Joepro 2009-10-01 03:30:58