“显示所有文件和文件夹”和“不显示隐藏的文件和文件夹” 同时被选中问题

本文提供了一种解决隐藏文件无法正常显示的方法,涉及修改注册表中的特定键值,适用于Win2000和XP系统。
“显示所有文件和文件夹”和“不显示隐藏的文件和文件夹” 同时被选中

是一种木马。

常规的注册表修改已试过。


1、打开注册表
hkey_local_machine/softwaer/microsoft/windows/currentversion/explorer/advanced/folder/hidden/。 
在这里有二个主键,分别是nohidden、showall,将nohidden下二进制键值CheckedValue和DefaultValue均设为2;showall下将CheckedValue 
设为1,DefaultValue设为2。重启机子就可以了 

这个方法已经试过?
你再看看这个: 
---------------------
2、解决"显示所有文件和文件夹"不能显示隐藏文件的问题!
昨天偶然发现,隐藏属性的文件不能通过显示所有文件和文件夹显示文件了,奇怪!一查进程多了个SVOHOST.EXE,可不是svchost.exe,可能中了什么木马.杀掉现象依旧,应该是注册表被其改动,隐藏其身份.
在“开始”菜单中点击“运行”命令,在弹出的对话框里键入regedit打开注册表,找到HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/explorer/Advanced/Folder/Hidden/。在这里有两个主键,分别是NOHIDDEN、SHOWALL(windows2000)。在SHOWALL下面有个二进制键值CheckedValue,把它的键值修改是“0” ,原来如此!将其改为"1"后,原以为ok,结果现象依旧
把NOHIDDEN的CheckedValue 值改为1,SHOWALL的CheckedValue值也改为0,点了不显示隐藏……按确定后,隐藏的文件夹全显了出来,后又点了显示所有……按确定后,文件夹反而藏了起,正好与事实相反!虽然可以通过"不显示隐藏……"看隐藏文件,但总不爽,且菜单中没有缺省选中项了,不知是否windows的BUG.
对比后,恍然大悟,原来木马把SHOWALL的CheckedValue的值的属性改成REG_SZ,而不是DWORD!!!所以无论SHOWALL的CheckedValue是否==1,都不起作用!改回后回复正常!

3、找到HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/explorer/Advanced/Folder/Hidden/SHOWALL分支,在右边的窗口中双击CheckedValue键值项,该键值应为1.如果值不为1,改为1即可。 


如果你设置仍起不了作用,那么接下来看。 
有些木马把自己的属性设置成隐藏、系统属性,并且把注册表中“文件夹选项中的隐藏受保护的操作系统文件”项和“显示所有文件和文件夹”选项删除,致使通过procexp可以在进程中看到,但去文件所在目录又找不到源文件,无法进行删除。(正常如图,被修复后看不见图中标注的项) 

针对这种情况可以把下面内容存储成ShowALl.reg文件,双击该文件导入注册表即可 

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/NOHIDDEN] 
"RegPath"="Software//Microsoft//Windows//CurrentVersion//Explorer//Advanced" 
"Text"="@shell32.dll,-30501" 
"Type"="radio" 
"CheckedValue"=dword:00000002 
"ValueName"="Hidden" 
"DefaultValue"=dword:00000002 
"HKeyRoot"=dword:80000001 
"HelpID"="shell.hlp#51104" 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/SHOWALL] 
"RegPath"="Software//Microsoft//Windows//CurrentVersion//Explorer//Advanced" 
"Text"="@shell32.dll,-30500" 
"Type"="radio" 
"CheckedValue"=dword:00000001 
"ValueName"="Hidden" 
"DefaultValue"=dword:00000002 
"HKeyRoot"=dword:80000001 
"HelpID"="shell.hlp#51105" 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/SuperHidden] 
"Type"="checkbox" 
"Text"="@shell32.dll,-30508" 
"WarningIfNotDefault"="@shell32.dll,-28964" 
"HKeyRoot"=dword:80000001 
"RegPath"="Software//Microsoft//Windows//CurrentVersion//Explorer//Advanced" 
"ValueName"="ShowSuperHidden" 
"CheckedValue"=dword:00000000 
"UncheckedValue"=dword:00000001 
"DefaultValue"=dword:00000000 
"HelpID"="shell.hlp#51103" 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/SuperHidden/Policy] 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/SuperHidden/Policy/DontShowSuperHidden] 
@="" 


具体操作方法: 
1)通过记事本新建一个文件 
2)将以上内容复制到新建的记事本文件中 
3)通过记事本文件菜单另存为show.reg 
4)双击存储的showall.reg文件,点击弹出的对话框是按钮即可。 

注意:以上方法对win2000和XP有效 

<think>我们需要在Windows系统中通过修改注册表来实现两个功能: 1. 显示隐藏文件文件夹 2. 隐藏受保护的操作系统文件 这两个设置分别对应注册表中的两个键值: 1. 隐藏文件设置: 路径:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced 键名:Hidden 值:1(显示隐藏文件文件夹),2(显示隐藏文件文件夹) 2. 隐藏受保护的操作系统文件: 路径:同上 键名:ShowSuperHidden 值:0(隐藏受保护的操作系统文件),1(显示受保护的操作系统文件) 注意:我们还需要刷新资源管理器以使设置生效。 以下是用易语言实现的完整代码: </think>### 易语言设置隐藏文件系统文件显示状态 以下是完整的解决方案,包含设置隐藏文件系统文件显示状态的代码: ```vb .版本 2 .支持库 eAPI .支持库 spec .子程序 设置文件显示状态 .参数 显示隐藏文件, 逻辑型, , 真=显示隐藏文件,假=显示 .参数 隐藏系统文件, 逻辑型, , 真=隐藏系统文件,假=显示 .局部变量 注册表路径, 文本型 .局部变量 结果, 整数型 注册表路径 = "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" ' 设置隐藏文件显示状态 .如果 (显示隐藏文件) 结果 = 写注册项 (#现行用户, 注册表路径 + "\Hidden", 1) .否则 结果 = 写注册项 (#现行用户, 注册表路径 + "\Hidden", 2) .如果结束 ' 设置系统文件隐藏状态 .如果 (隐藏系统文件) 结果 = 写注册项 (#现行用户, 注册表路径 + "\ShowSuperHidden", 0) .否则 结果 = 写注册项 (#现行用户, 注册表路径 + "\ShowSuperHidden", 1) .如果结束 ' 刷新系统设置 刷新资源管理器设置 () .子程序 刷新资源管理器设置 .局部变量 结果, 整数型 .局部变量 桌面句柄, 整数型 ' 方法1:发送系统刷新消息 结果 = 发送消息 (65535, 26, 0, 0) ' WM_WININICHANGE ' 方法2:刷新桌面窗口 桌面句柄 = 寻找子窗口 (寻找顶级窗口 ("Progman", "Program Manager"), 0, "SHELLDLL_DefView", "") 桌面句柄 = 寻找子窗口 (桌面句柄, 0, "SysListView32", "FolderView") 发送消息 (桌面句柄, 28931, 0, 0) ' LVM_UPDATE ' 方法3:使用API刷新 DLL调用 ("shell32.dll", "SHChangeNotify", 整数型, 134217728, 整数型, 0, 整数型, 0, 整数型, 0) ' SHCNE_ASSOCCHANGED .子程序 _按钮_设置_被单击 设置文件显示状态 (假, 真) ' 显示隐藏文件隐藏系统文件 信息框 ("已设置:显示隐藏文件隐藏系统文件", 0, "设置成功", ) ``` ### 代码详解: #### 1. 注册表设置原理 - **隐藏文件设置**: - 注册表路径:`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden` - 值说明: - `1` = 显示隐藏文件 - `2` = 显示隐藏文件 - **系统文件设置**: - 注册表路径:`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ShowSuperHidden` - 值说明: - `0` = 隐藏受保护的操作系统文件 - `1` = 显示受保护的操作系统文件 #### 2. 刷新机制 使用三种互补的刷新方法确保设置立即生效: 1. **WM_WININICHANGE消息**:通知系统设置已更改 2. **刷新桌面窗口**:直接操作桌面列表视图控件 3. **SHChangeNotify API**:系统文件系统变更通知 #### 3. 完整功能实现 创建一个窗口程序,添加以下组件: ```vb _________ 设置面板 _________ [✓] 显示隐藏文件 [✓] 显示系统文件 [设置按钮] ___________________________ ``` 对应代码: ```vb .版本 2 .程序集 窗口程序集_启动窗口 .子程序 __启动窗口_创建完毕 选择框_隐藏文件.选中 = 假 选择框_系统文件.选中 = 假 .子程序 _按钮_设置_被单击 设置文件显示状态 (选择框_隐藏文件.选中, 取反 (选择框_系统文件.选中)) ``` ### 注意事项: 1. **权限要求**: ```vb .如果真 (是否管理员 () = 假) 信息框 ("请以管理员身份运行程序", 0, "权限足", ) 返回 () .如果真结束 ``` 2. **兼容性处理**: ```vb .如果真 (取操作系统类别 () ≤ 5) ' Windows 7及以下系统 DLL调用 ("user32.dll", "LockWindowUpdate", 逻辑型, 真) .如果真结束 ``` 3. **错误处理**: ```vb .如果真 (结果 = 0) 信息框 ("注册表修改失败!", 16, "错误", ) .如果真结束 ``` 4. **注册表备份**: ```vb .子程序 备份注册表 注册表_导出项 (#现行用户, 注册表路径, "C:\FileSettingsBackup.reg") ``` ### 实际应用场景: 1. 创建系统优化工具时自动隐藏敏感文件 2. 开发U盘安全工具防止系统文件被误删 3. 制作隐私保护工具隐藏个人文件 4. 在文件管理工具中提供高级显示选项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值