如何在Windows中以编程方式删除损坏的快捷方式

3
我正在寻找一种通过C/C++代码从我的Windows机器中删除损坏的快捷方式的方法。我发现了一些可以做到这一点的软件(Microsoft Fix It),但在网络上没有关于如何通过编码实现此功能的信息。
如果有任何示例代码或API可用于实现相同的功能,请告诉我。
注:对于其他人来说,可能会有点困惑,不知道我所指的是什么类型的快捷方式。这里基本上是首先要寻找桌面和资源管理器的快捷方式。

什么样的“快捷方式”?有文件系统级别的链接或更常见的资源管理器链接,它们只是带有扩展名“.LNK”的文件,并由资源管理器解释。 - Ulrich Eckhardt
Windows还有一种称为“Internet快捷方式”的东西,通常是类似于myfile.url的文件。这些都是文本文件。 - Marichyasana
1个回答

4
您没有具体说明需要翻译的是哪种快捷方式,因此我假设您想使用桌面和/或开始菜单快捷方式进行操作。这需要几个步骤:
1. 首先,您需要找到快捷方式,它们是".lnk"文件。您可以使用SHGetFolderPath命令查找一些相关文件夹的位置,例如开始菜单。有关详细信息,请参见此SO答案
2. 在Windows中处理快捷方式文件并不容易。请参阅MSDN中的shell-links参考文献。查找“解析快捷方式”示例。查看“ResolveIt”函数,了解如何查询快捷方式文件的各种属性。
3. 现在查找快捷方式目标并确定其是否已损坏(例如,目标路径不存在)。

你好 itaypk,感谢您的迅速回复,我确实提到了微软修复工具,所以我也不知道它考虑了哪些类型的快捷方式。我会尝试上述方法并让您知道结果。 - Darshan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接