0

在以编程方式删除其内容后,我需要通知 Windows 资源管理器刷新其回收站图标,以便它显示空的回收站图标。我如何在使用 vc++ 时做到这一点。

4

2 回答 2

3

让我猜猜:您是通过手动删除实际回收站文件夹中的文件来清空它吗?

你试过SHEmptyRecycleBin吗?

这是 Windows 资源管理器用来清空垃圾箱的调用,它应该处理图标;)

于 2013-09-13T16:16:22.483 回答
3

Shell32.dll 导出一个名为的函数,该函数SHUpdateRecycleBinIcon执行它所说的。此函数未记录,但您可以这样调用它:

typedef void (WINAPI* PFNSHUPDATERECYCLEBINICON)();
PFNSHUPDATERECYCLEBINICON pfnFunc = (PFNSHUPDATERECYCLEBINICON)GetProcAddress(GetModuleHandle(L"shell32.dll"), "SHUpdateRecycleBinIcon");
if (pfnFunc) pfnFunc();

我会注意到其他评论,尽管自己从回收站中删除东西可能不是最佳实践(当然,也不是使用未记录的函数)。

于 2013-09-13T20:20:28.347 回答