是否有一种从桌面删除快捷方式的特殊方法?

c00*_*0fd 5 c++ windows winapi desktop-application shortcut

我使用IShellLink接口在桌面上创建了一个快捷方式(.lnk)文件,类似于本页底部描述的代码.

所以我的假设是删除这个快捷方式我可以简单地在.lnk文件上调用DeleteFile,但显然它是不够的...如果我这样做,我得到一个看起来像这样的快捷方式文件的残余:

在此输入图像描述

但有趣的是,如果我浏览桌面文件夹中的文件,比如使用Windows资源管理器,那么.lnk文件实际上并不存在.我看到的是桌面GUI界面上的一些工件.

知道如何删除快捷方式(微软想要它的方式吗?)

c00*_*0fd 3

好的,根据上面的建议,这是之后需要调用来刷新 shell 的 API:

SHChangeNotify(SHCNE_DELETE, SHCNF_PATH | SHCNF_FLUSHNOWAIT, pDeletedFilePath, NULL);
Run Code Online (Sandbox Code Playgroud)