无忧启动论坛

标题: 托盘区显示并切换是否显示隐藏的项目和系统文件的ahk脚本 [打印本页]

作者: hlowld    时间: 2025-4-16 12:52
标题: 托盘区显示并切换是否显示隐藏的项目和系统文件的ahk脚本
本帖最后由 hlowld 于 2025-4-16 16:30 编辑

没什么技术含量,个人感觉挺实用。
推荐在win10上用,win11也能用,但图标偏移不一样了,导致显示的图标不准确,可自行修改一下。

#NoEnv
#SingleInstance Force
#Persistent
Menu, Tray, NoStandard ; 隐藏AutoHotkey默认菜单
Gosub, Update
peroid = 10000
argc = %0%
if (argc >= 1) {
    peroid = %1%
}
SetTimer, Update, %peroid% ; 每 peroid/1000 秒更新一次
Return


Update:
    Menu, Tray, DeleteAll
    RegRead Value, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden   
    if (Value = 1) {
        Menu, Tray, Add, 不显示隐藏的项目, ToggleHidden
        Menu, Tray, Default, 不显示隐藏的项目 ; 双击托盘图标触发
        RegRead Value, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, ShowSuperHidden
        if (Value = 1) {
                        Menu, Tray, Add, 隐藏系统文件, ToggleSuperHidden
                        Menu, Tray, Icon, shell32.dll , 70 ;看全部
                        Menu, Tray, Tip, 显示隐藏的项目,显示系统文件
        } else {
                Menu, Tray, Add, 显示系统文件, ToggleSuperHidden
                Menu, Tray, Icon, shell32.dll , 1 ;看非系统文件
                Menu, Tray, Tip, 显示隐藏的项目,隐藏系统文件
        }
    } else {
        Menu, Tray, Add, 显示隐藏的项目, ToggleHidden
        Menu, Tray, Default, 显示隐藏的项目 ; 双击托盘图标触发
        Menu, Tray, Icon, imageres.dll , 255 ;都不看
        Menu, Tray, Tip, 不显示隐藏的项目
    }
    Menu, Tray, Add
    Menu, Tray, Add, 退出, ExitApp
Return


ToggleHidden:
    ; 切换是否显示隐藏的项目
    RegRead, Value, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden
    if (Value = 1) {
        RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden, 2
    } else {
        RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, Hidden, 1
    }
        Gosub, Effect  ;生效
    Gosub, Update  ;更新托盘菜单
Return


ToggleSuperHidden:
    ; 切换是否显示系统文件
    RegRead, Value, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, ShowSuperHidden
    if (Value = 1) {
        RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, ShowSuperHidden, 0
    } else {
        RegWrite, REG_DWORD, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced, ShowSuperHidden, 1
    }
        Gosub, Effect  ;生效
    Gosub, Update  ;更新托盘菜单
Return


Effect:
        WinGet, id, List, ahk_class CabinetWClass
        Loop, %id%
        {
        id := id%A_Index%
        SendMessage, 0x111, 0x1A220,,, ahk_id %id%
        }
        WinGet, id, ID, ahk_class Progman
        SendMessage, 0x111, 0x1A220,,, ahk_id %id%
return


ExitApp:
    ExitApp


作者: handsome_xiang    时间: 2025-4-16 13:10
感谢分享!
作者: dresesxxxb    时间: 2025-4-16 14:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: hmaaaa    时间: 2025-4-16 14:14
感謝大大分享!^^ 辛苦了!
作者: guong    时间: 2025-4-16 16:06
感谢楼主分享!
作者: 小灰兔    时间: 2025-4-16 16:27
感谢楼主分享
作者: wang1126    时间: 2025-4-17 08:15
谢谢楼主分享
作者: yazhiliu    时间: 2025-4-17 08:16
感谢分享!
作者: sulong    时间: 2025-4-17 08:55
确实挺实用,感谢楼主分享
作者: ppll2030    时间: 2025-4-17 09:25
这个功能不是有个右键菜单版嘛。那个不更方便。
作者: hlowld    时间: 2025-4-17 09:31
本帖最后由 hlowld 于 2025-4-17 12:19 编辑

之前也一直用右键菜单切换,但普通右键菜单无法显示当前的状态,开发shell dll可以实现右键菜单文本或图标动态显示当前状态,但比较复杂,想了一下还不如托盘区简单实用
作者: guong    时间: 2025-4-17 11:35

感谢楼主分享!
作者: valen21    时间: 2025-4-17 11:51
楼主有没有做新的精简系统了?
作者: hlowld    时间: 2025-4-17 12:18
老机器RAMOS用的,追求极致地省空间和资源占用,自己精简的LTSB2016(14393.1944)基本上够用了,能解决的问题都解决了。

主力机上,我不再追求省空间,只精简能精简的所有APPX(含Defender)和 Edge、OneDrive。
我的精简方案变成了:不精简镜像,写了一个批处理,调用winntsetup释放文件后,执行 "离线精简部分组件和APPX + 离线优化" 的脚本,然后添加首次登录执行"在线精简部分组件和APPX + 在线优化" 的无人值守文件,再重启。
好处是:用这个脚本安装所有原版系统后,都是我想要的样子,基本一劳永逸了。


作者: classMain    时间: 2025-4-21 18:01
谢谢楼主分享!

作者: cutebe    时间: 2025-4-21 18:05
hlowld 发表于 2025-4-17 12:18
老机器RAMOS用的,追求极致地省空间和资源占用,自己精简的LTSB2016(14393.1944)基本上够用了,能解决的问 ...

感谢分享!




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3