使指定的窗口半透明.
WinSetTransparent N, WinTitle, WinText, ExcludeTitle, ExcludeText
要启用透明度, 请指定一个 0 到 255 之间的数字, 以表示透明度: 0 表示完全透明, 而 255 表示完全不透明.
"Off"
(不区分大小写) 或空字符串可以完全关闭窗口的透明度. 这在功能上与 WinSetTransColor "Off"
相同. 指定 Off 与指定 255 的区别是, 这样可以提升性能并降低系统资源的占用(但可能仅在禁用 DWM 时).
如果这些都是空白或省略, 将使用上次找到的窗口. 否则, 为 WinTitle 指定窗口标题或其他条件, 来标识目标窗口, 和/或为 WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示).
ExcludeTitle 和 ExcludeText 可用于根据标题或文本排除一个或多个窗口. 它们的规范类似于 WinTitle 和 WinText, 除了 ExcludeTitle 不识别除窗口标题之外的任何条件.
窗口标题和文本是区分大小写的. 默认情况下, 不检测隐藏窗口, 而检测隐藏文本元素, 除非使用 DetectHiddenWindows 和 DetectHiddenText 进行更改. 默认情况下, 窗口标题的任意位置包含 WinTitle 或 ExcludeTitle 就能形成匹配, 除非使用 SetTitleMatchMode 进行了更改.
如果找不到窗口, 则抛出 TargetError.
如果无法应用更改, 则抛出 OSError.
例如, 要使任务栏透明, 请使用 WinSetTransparent 150, "ahk_class Shell_TrayWnd"
. 类似地, 要使经典的开始菜单透明, 请参阅示例 #2. 要使开始菜单的子菜单透明, 还需要包含示例 #2 中的脚本.
在使用 Off 之前, 将透明级别设置为 255, 可以避免窗口重绘问题, 比如黑色背景. 如果窗口仍无法正确重绘, 那么请参阅 WinRedraw 了解可能的解决方法.
鼠标光标下的窗口的 ID 可以使用 MouseGetPos 来获取.
使经典开始菜单透明(若要使开始菜单的子菜单透明, 请参阅示例 #3).
DetectHiddenWindows True WinSetTransparent 150, "ahk_class BaseBar"
使所有或选定的菜单一出现就在整个系统中变得透明. 请注意, 尽管这样的脚本不能使自己的菜单透明, 但它可以使其他脚本的菜单透明.
SetTimer WatchForMenu, 5 WatchForMenu() { DetectHiddenWindows True ; 可以更早的检测菜单. if WinExist("ahk_class #32768") WinSetTransparent 150 ; 使用上面一行找到的窗口. }
演示 WinSetTransparent 和 WinSetTransColor 效果的一些热键. 注意: 如果在鼠标光标悬停在 TransColor 造成的不可见的像素上时按下其中一个热键, 则这个像素下面可见的窗口将会被替代!
#t:: ; 按下 Win+T 来让鼠标光标下的颜色透明. { MouseGetPos &MouseX, &MouseY, &MouseWin MouseRGB := PixelGetColor(MouseX, MouseY) ; 似乎有必要首先关闭任何现有的透明度: WinSetTransColor "Off", MouseWin WinSetTransColor MouseRGB " 220", MouseWin } #o:: ; 按下 Win+O 来关闭鼠标下窗口的透明度. { MouseGetPos ,, &MouseWin WinSetTransColor "Off", MouseWin } #g:: ; 按下 Win+G 来显示鼠标下窗口的当前透明设置. { MouseGetPos ,, &MouseWin TransDegree := WinGetTransparent(MouseWin) TransColor := WinGetTransColor(MouseWin) ToolTip "Translucency:`t" TransDegree "`nTransColor:`t" TransColor }