灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1761回复:0

系统隐藏和显示文件和文件夹注册表相关问题

楼主#
更多 发布于:2013-01-08 14:40

系统隐藏和显示文件和文件夹注册表相关问题
 
 
 
注册表修改如下:
 
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerAdv
 
anced]    
 
    "Hidden "=dword:00000002   //不显示隐藏文件
 
    "Hidden "=dword:00000001   //显示所有文件
 
    "Hidden "=dword:00000000   //不显示系统文件或隐藏文件
 
    "ShowCompColor "=dword:00000000
 
    "HideFileExt "=dword:00000001//隐藏已知类型的扩展名
 
    "ShowInfoTip "=dword:00000001//鼠标指向文件夹和桌面项时显示提示信息
 
    "ClassicViewState "=dword:00000000//记忆每个文件夹的视图设置
 
 
 
vc更新注册表后,自动刷新桌面
 
分为两步,第一步让explorer从注册表重新读取信息,第二步刷新桌面,代码如下
 
 
 
void CRefreshExplorerDlg::OnRefreshExplorer()
 
{
 
     ::SHChangeNotify( SHCNE_ASSOCCHANGED , SHCNF_IDLIST | SHCNF_FLUSH, 0, 0);
 
 
 
     HWND hWndProgram = ::FindWindow( _T("Progman"), NULL);
 
     HWND hWndDefView = ::FindWindowEx( hWndProgram, NULL, _T("SHELLDLL_DefView"), NULL);
 
     HWND hWndListView= ::FindWindowEx( hWndDefView, NULL, _T("SysListView32"),     NULL);
 
 
     ::PostMessage( hWndListView, WM_KEYDOWN, VK_F5, 0);
 
     ::PostMessage( hWndListView, WM_KEYUP,    VK_F5, 0);
 
}
 
试试
 
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,NULL,NULL);
 
 
 
如果使用SystemParametersInfo修改系统设置,最后一个参数应设置为SPIF_SENDWININICHANGE。不过不是所有的操作都可以立即生效。
 
 
 
注册表里有那么多信息,关键看你修改的是啥,以及你的程序是否感兴趣啊。
 
 
 
如果是系统设置信息,可以试试:


DWORD   result;
 
SendMessageTimeout(
 
 
 
HWND_BROADCAST,
 
 
 
WM_SETTINGCHANGE,
 
 
 
NULL,
 
 
 
NULL,SMTO_ABORTIFHUNG   |   SMTO_BLOCK,
 
 
 
3000,   //timeout   in   milliseconds
 
 
 
;result);
 
 
 
 
 
作者 IMGTN

喜欢0 评分0
游客

返回顶部