本帖最后由 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
|