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