我已经编写了一个简单的基于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