autohotkey实战:窗口透明化


AHK系列:

本文采用的是V1版本语法

实现方法

窗口透明不仅实用性强,关键是非常炫酷,如果用AHK实现一个实时调节窗口透明度的工具,那么就可以一边敲代码,一边透过半透明的IDE,愉快地摸鱼了。而实现方法也非常简单,只需下面这几行代码

#=:: ;窗口透明化增加或者减弱
    WinGet, ow, id, A
    chWinTrans(ow, 10)
    return

#-:: ;窗口透明化增加或者减弱
    WinGet, ow, id, A
    chWinTrans(ow, -10)
    return

chWinTrans(w, i){
    WinGet, t, Transparent, ahk_id %w%
    t +=  i
    if t > 255 or t<0
        t := 255
    WinSet, Transparent, %t%, ahk_id %w%
    return
}

其实现效果如下

在这里插入图片描述

代码讲解

首先,绑定🪟=和🪟-分别用于调节窗口的透明度,这两个快捷键所绑定的脚本几乎相同,都调用了chWinTrans函数,区别只是其中一个用到的参数是10,而另一个是-10而已。

chWinTrans的逻辑也非常简单,首先用WinGet函数获取当前的透明度,然后加上传入的数值。如果加上传入的数值在255和0之间,就将窗口透明度更改为新的值,否则就重置为255,即不透明。

这样可能会导致一个结果,即没法让窗口完全不透明,这也是出于安全考虑,毕竟窗口变成全透明的,在界面上无法找到,就很悲剧。如果非要实现,只需把判断语句稍作修改就行了

if t>255
    t := 255
if t < 0
    t := 0

WinGet, ow, id, A用于将窗口id赋值给owA表示当前活动窗口。

WinGet和WinSet

在上述代码中,用到了一个WinGetWinSet函数,对初学者来说相对比较陌生,但从其名字的对偶性可以推测,前者用于获取窗口信息,后者用于设置窗口属性,二者定义如下

WinGet, OutputVar , [SubCommand, WinTitle, WinText, ExcludeTitle, ExcludeText]
WinSet, SubCommand, Value , [WinTitle, WinText, ExcludeTitle, ExcludeText]

被方括号圈起来的部分表示非必要参数。

WinGet用于获取属性,所以需要有一个输出,即OutPutVarWinSet用于设置属性,所以需要有一个设置值,即Value,除此之外,二者的参数几乎都是相同的。

其中SubCommand为子命令,可选以下指令

指令GetSet说明
ID✔️获取窗口的唯一 ID 号.
IDLast✔️如果找到多个匹配窗口, 它会获取最后的/最下面的窗口唯一 ID.
PID✔️获取窗口的进程 ID.
ProcessName✔️获取拥有窗口的进程名.
ProcessPath✔️获取拥有窗口的进程的完整路径和名称.
Count✔️获取与标题/文本参数匹配的现有窗口的数量.
List✔️与标题/文本参数相匹配的所有现有窗口的唯一 ID 号.
MinMax✔️获取窗口的最小化/最大化状态.
ControlList✔️获取窗口中每个控件的控件名.
ControlListHwnd✔️获取窗口中每个控件的唯一 ID 号.
Transparent✔️✔️获取窗口的透明度的等级.
TransColor✔️✔️获取在窗口中标记为透明的颜色.
Style✔️✔️获取表示窗口样式的 8 位十六进制数字.
ExStyle✔️✔️获取表示窗口扩展样式的 8 位十六进制数字.
AlwaysOnTop✔️让窗口处于置顶状态.
Bottom✔️发送窗口到堆栈的底部; 即在所有其他窗口的下面.
Top✔️把窗口带回到堆栈的顶部而不进行激活.
Disable✔️禁用窗口.
Enable✔️启用窗口.
Redraw✔️重绘窗口.
Region✔️改变窗口的形状为指定的矩形, 椭圆形或多边形.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微小冷

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值