管理员
|
阅读: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
| | | | |
|