我编写了一个简单的基于 FTP 的文件同步程序。其设置可以存储在 XML 文件中。我希望用户能够使用各种配置快速打开程序。所以我将程序设置为能够通过命令行参数读取配置文件的路径。这样可以根据不同的配置文件在桌面上创建快捷方式。现在我正在尝试添加一项功能,该功能将自动为特定配置文件创建快捷方式。
我已经尝试使用 ShellLink.cs 使用这篇文章中的示例。而且我也尝试过使用这里描述的 IWshRuntimeLibrary 。我可以创建快捷方式,但属性窗口中快捷方式的“目标类型”最终在新快捷方式中为空白。如果我双击快捷方式,我会从 Windows 收到一个错误窗口,提示它在提供的路径中查找 FooBar.xml 时遇到问题。所以它似乎没有意识到它应该启动一个不打开文件的应用程序。
现在,如果我打开新快捷方式的属性并更改目标字段中的某些内容,然后将其更改回来。例如,从 xml 中删除 x,然后将其添加回来。单击确定后,快捷方式的图标立即切换到我的应用程序的图标,并在双击时正常工作。
因此,当我手动编辑快捷方式时,它会强制窗口检查快捷方式目标类型是否应该是应用程序并切换它。
那么,当目标路径不以 .exe 结尾时,如何通过 C# 创建目标类型为 Application 的新快捷方式?