Windows系统没有目标位置的快捷方式及其目标文件获取

本文探讨了解析Windows系统中特殊类型的快捷方式(Advertised Shortcuts)的问题,这些快捷方式通常由msi安装包创建,目标不直接指向.exe文件。通过研究MSDN和Stack Overflow资源,找到了使用MsiGetShortcutTargetW API来正确获取这类快捷方式目标的方法,解决了IShellLink无法处理此类快捷方式的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的项目需要解析Windows系统的快捷方式(.lnk),研究发现,虽然快捷方式的后缀都是(.lnk),但其实存在两种不同的格式,如图:

右侧的 QQ 快捷方式则是我们常见的那种,目标是指向一个 .exe,而左侧的 python 的快捷方式并没有目标位置,而且目标也不指向一个特定文件。

用 IShellLink 去解析 QQ 的快捷方式(一般的快捷方式)没有任何问题(网上搜代码一堆,这里就不贴了),但用它来获取 python 那种图标就不行了,IShellLink 解 python 快捷方式,返回的目标文件是存放在 %appdata%\Roaming\Microsoft\Installer\{DCD5B320-89D9-4C7C-9E8B-84496588744D}\python_icon.exe。

在 MSDN 折腾了半天,搜到了 stackoverflow 的这个:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值