我需要通过修改注册表的方法实现“不显示所有的隐藏文件”的功能。
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\Hidden
我把Hidden的键值修改为2的时候就是不显示所有隐藏文件了。但我现在遇到一个问题。
修改完以后不能实现立即刷新,也就是说,类似与windows中的“应用”或“确定”按钮。
我尝试了 SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0); 
和   SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE ,NULL ,NULL ,SMTO_ABORTIFHUNG ,1000,&dwResult);但都没有刷新的效果,望那位高人赐教。小弟不胜感谢

解决方案 »

  1.   

    我估计你的方法行不通,
    你通过注册表修改的信息要到下次重新启动时才能有效,
    因为这个值系统只在开机的时候读,
    而修改文件夹选项我想是用API实现的,
    修改后在注册表里记录一下而已,
    便于下次开机时能保存设置.
      

  2.   

    我要模拟的功能是选择“工具/文件夹选项/查看/不显示隐藏的文件和文件夹"
    如果是我们手动更改,然后点击”确认“或”应用“系统马上就能生效。所以我想这个功能是不需要重启系统就能生效的。我想要做的就是模拟手动的点击 “确认”或 “应用”动作
    我用下面的API函数发送消息的时候,屏幕一闪(好像是刷新了)但没有刷新的效果
    我想是不是我参数用的不对。
    SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE ,NULL ,NULL ,SMTO_ABORTIFHUNG ,1000,&dwResult);
      

  3.   

    不好意思,没有做过不知道。
    如果你确信修改后发送了系统消息的话,你可以用spy++看看。不过我好像没有找到什么特别的消息。帮你顶一下。
      

  4.   

    to shootingstars(流星)  感谢~我再想想办法
      

  5.   

    我那样实验了一下
    行得通哦所以zhucde(【风间苍月】) ( )说得不对哦
      

  6.   

    to dzqsuper就是啊 不知道怎么刷注册表
    我试着发送 WM_SETTINGCHANGE 消息给全部窗口,出现一个奇怪的现象。发送消息后,屏蔽有闪动(好像是刷新了),但还是显示隐藏的文件,按f5刷新也没有用。但如果我用鼠标点击"工具/文件夹选项/查看"(注意没有选中“显示所以隐藏文件”或“隐藏所以隐藏文件”也没有选中,“确定”或“应用”)这时再按“F5”就能刷新了。奇怪~
      

  7.   

    重启系统进程 Exlorer.exe 就可以成功的刷新系统了