如何以编程方式刷新Windows资源管理器?
我有一个Windows shell扩展,使用
IShellIconOverlayIdentifier接口在文件和文件夹上显示叠加图标。我的扩展名有点像
TortoiseCVS或
TortoiseSVN。
有时我需要使Windows资源管理器重绘所有的图标。为此,我打电话给SHChangeNotify这样: SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_IDLIST,NULL,NULL) 这将刷新任何打开的资源管理器窗口的桌面和右侧窗格。它不会刷新任何资源管理器窗口左侧的文件夹树。 所以我试着发送这样的WM_SETTINGCHANGE: SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0) 在Vista上,这会刷新文件夹树,而不是右窗格。 SHChangeNotify()后跟WM_SETTINGCHANGE的组合似乎在Vista上运行得很好。但如果显示,我仍然无法刷新XP上的文件夹树。 有谁有任何想法如何做得更好? XP有更好的解决方案吗? 发送SHCNE_ASSOCCHANGED有点像在头上的探索者。它会导致整个桌面相当猛烈地刷新,并使任何打开的资源管理器窗口松动滚动位置。有没有什么比较少的暴力?
我个人不知道。你提到了类似的东西的乌龟程序,所以一个很好的起点是看看他们在源中做什么:) 这些看起来是处理这个问题的相关源文件: > TortoiseCVS – ShellUtils.cpp 我在RebuildIcons方法中注意到每一个方面: >将shell图标大小或颜色深度设置为临时值 也许这是在XP中使事情发挥作用的一部分。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2008-r2 – 为什么我们的服务器上只有16 GB
- windows-server-2012-r2 – Hyper-V来宾故障转移群集文件服
- Windows – 基于Web的Active Directory前端
- windows-8 – 无法从主机ping本地VM
- windows-server-2012 – Server 2012:更改桌面背景颜色
- 如何在Hyper-v主机Windows Server 2008 R2上使用静态IP配置
- .NET Windows Forms自定义控件,如何创建快捷菜单
- PowerShell设置高级NTFS权限
- 如何在Windows 7上使用GitBash中的CLI在其默认程序中打开文
- Windows10鼠标指针不停转圈的罪魁祸首:搜狗输入法云计算代