3,248
社区成员




bool ShowAllFilesInExplorer(bool bShowHidden/*对应[显示所有的文件和文件夹]*/, bool bShowSysProtected/*对应[显示受操作系统保护的文件]*/)
{
HKEY hKey = {0};
bool bRet = true;
if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"), 0, KEY_SET_VALUE, &hKey))
{
DWORD dwShowHidden = bShowHidden ? 1 : 2;
DWORD dwShowSysProtected = bShowSysProtected ? 1 : 0;
if (ERROR_SUCCESS != ::RegSetValueEx(hKey, TEXT("Hidden"), 0, REG_DWORD, (LPBYTE)&dwShowHidden, (DWORD)sizeof(dwShowHidden))
||
ERROR_SUCCESS != ::RegSetValueEx(hKey, TEXT("ShowSuperHidden"), 0, REG_DWORD, (LPBYTE)&dwShowSysProtected, (DWORD)sizeof(dwShowSysProtected)))
{
bRet = false;
}
::RegCloseKey(hKey);
}
else
{
bRet = false;
}
if (bRet)
{
::SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)TEXT("ShellState"), SMTO_ABORTIFHUNG, 3000, NULL);
::SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
}
return bRet;
}