如何在程序中删除破碎的快捷方式

问题描述:

我正在寻找一种方法,通过c/C++代码从我的Windows机器中删除破碎的快捷方式。 我发现了一些软件可以做到这一点(微软修复它),但网络上没有关于如何通过编码完成的信息。如何在程序中删除破碎的快捷方式

让我知道是否有任何示例代码或API可用于实现相同。

注意:其他人对我指的是什么样的快捷方式有点困惑,基本上我在寻找桌面和资源管理器快捷方式作为第一步。

+0

什么样的“捷径”?有文件系统级别的链接或更常见的资源管理器链接,这些链接只是扩展名为“.LNK”且由资源管理器解释的文件。 –

+0

Windows也有它称之为'Internet Shortcut'的地方,它通常是'myfile.url'这些是文本文件。 – Marichyasana

你没有指定什么样的快捷方式,所以我假设你想用桌面和/或开始菜单快捷方式做到这一点。

这需要几个步骤:

  1. 首先,你需要找到快捷键,分别是“的.lnk”文件。您可以使用SHGetFolderPath命令来查找几个相关文件夹的位置,例如开始菜单。有关更多详情,请参阅this SO answer
  2. 在Windows中处理快捷方式文件不是微不足道的。请参阅MSDN中的shell-links参考。寻找“解决捷径”的例子。查看“ResolveIt”函数以查看如何查询快捷方式文件的各种属性。
  3. 现在查找快捷方式目标并确定它是否损坏(例如,目标路径不存在)。
+0

嗨itaypk感谢您的即时答复,我确实指定了微软修复它的工具,所以即使我不知道它正在考虑什么和所有类型的快捷方式。我会尝试上述方法并让你知道。 – Darshan