如何更新Windows资源管理器中显示的驱动器可用空间量?假设打开了Windows资源管理器,并以编程方式删除了一些文件。Windows资源管理器将不会刷新以显示新的可用空间。所以,我尝试像这样使用SHChangeNotify(Delphi代码):ws:='C:\';SHChangeNotify(SHCNE_FREESPACE,SHCNF_PATH,PWideChar(ws),nil);但它不会更新“Windows资源管理器”中报告的值。请帮忙。 最佳答案 如果您使用的是Delphi7,则SHCNF_PATH将映射到ANSI版本SH
是否可以使用[Code]部分中的InnoSetup刷新桌面?是使用SendMessage还是以某种方式使用SHChangeNotify? 最佳答案 您可以通过在适当的DLL中调用WindowsAPI中的任何函数来调用它。PascalDLL语法已记录here.SHChangeNotify的文档像往常一样在MSDN上可以找到函数。此函数位于Shell32.dll中(不足为奇!)。[Code]constSHCNE_ASSOCCHANGED=$08000000;SHCNF_IDLIST=$00000000;procedureSHChange
是的,我知道这似乎是一个愚蠢的问题,它只是一个一次性的hack,我需要结束一个有点平凡的任务,这样我才能继续做更有趣的事情。编辑:也许更多信息会有所帮助:我正在尝试从桌面上删除一些快捷方式,我需要用户立即看到它已被删除(这样他们就不必按F5)。 最佳答案 您可以使用SHChangeNotifyAPI。[System.Runtime.InteropServices.DllImport("Shell32.dll")]privatestaticexternintSHChangeNotify(inteventId,intflags,IntP