使指定的窗口半透明.
WinSetTransparent N, WinTitle, WinText, ExcludeTitle, ExcludeText
要启用透明度, 请指定一个 0 到 255 之间的数字, 以表示透明度: 0 表示完全透明, 而 255 表示完全不透明.
单词 "Off"
(不区分大小写) 可以完全关闭窗口的透明度. 这在功能上与 WinSetTransColor "Off", WinTitle
相同. 指定 "Off"
与指定 255 的区别是, 这样可以提升性能并降低系统资源的占用(但可能仅在禁用 DWM 时).
如果这些都未设置或省略, 将使用上次找到的窗口. 否则, 为 WinTitle 指定窗口标题或其他条件, 来标识目标窗口, 和/或为 WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示). 如果 DetectHiddenText 已经打开, 则检测隐藏文本元素. 标题或文本包含 ExcludeTitle 或 ExcludeText 的窗口将不被考虑.
如果找不到窗口, 则抛出 TargetError.
如果无法应用更改, 则抛出 OSError.
例如, 要使任务栏透明, 请使用 WinSetTransparent 150, "ahk_class Shell_TrayWnd"
. 类似地, 要使经典的开始菜单透明, 请参阅示例 #2. 要使开始菜单的子菜单透明, 还需要包含示例 #2 中的脚本.
在使用 "Off"
之前, 将透明级别设置为 255, 可以避免窗口重绘问题, 比如黑色背景. 如果窗口仍无法正确重绘, 那么请参阅 WinRedraw 了解可能的解决方法.
鼠标光标下的窗口的 ID 可以使用 MouseGetPos 来获取.
窗口标题和文本是区分大小写的. 除非 DetectHiddenWindows 被打开, 否则不会检测隐藏窗口.
使经典开始菜单透明(若要使开始菜单的子菜单透明, 请参阅示例 #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 Transparent := WinGetTransparent(MouseWin) TransColor := WinGetTransColor(MouseWin) ToolTip "Translucency:`t" Transparent "`nTransColor:`t" TransColor }