如何刷新文件夹?

Cloveaf 2011-12-03 01:33:17
用Shell扩展写了一个根据文件不同状态覆盖不同图标的程序,但是当文件状态改变时图标不能及时更新,要手动刷新文件夹才有效。请问有没有办法让程序去刷新文件夹呢?
DirectoryInfo.Refreh()是没有用的,在网上找过刷新图标缓存的方法:

[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hWnd,int Msg,int wParam,int lParam);

public const int WM_SETTINGCHANGE = 26;
public const int HWND_BROADCAST = 65535;

static void Main(string[] args)
{
int value = Convert.ToInt32(Registry.GetValue(@"HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "Shell Icon Size", -1).ToString());
Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "Shell Icon Size", value - 1, RegistryValueKind.String);
SendMessage(new IntPtr(HWND_BROADCAST), WM_SETTINGCHANGE, 0, 0);
Registry.SetValue(@"HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "Shell Icon Size", value, RegistryValueKind.String);
SendMessage(new IntPtr(HWND_BROADCAST), WM_SETTINGCHANGE, 0, 0);
}

也不起作用。
...全文
298 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yellowgiutou 2012-12-26
  • 打赏
  • 举报
回复
同求啊!大神快快出现吧 SHChangeNotify 可以刷新,但是多了的话太闪烁了!
Cloveaf 2011-12-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sp1234 的回复:]
搞病毒?
[/Quote]

搞个像SVN那样的东西而已。
  • 打赏
  • 举报
回复
搞病毒?
cjh200102 2011-12-03
  • 打赏
  • 举报
回复
没试过。应该可以吧
baise111 2011-12-03
  • 打赏
  • 举报
回复
(*^__^*) 嘻嘻

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧