Rainmeter 是一款非常强大的桌面插件。不过在使用时,经常遇到这样尴尬的情况:虽然软件支持给每个小工具设置点击穿透的选项,不过对于本身需要点击的小工具,就要面临点击穿透 or 点击操作的取舍。晚上研究了一下 Rainmeter 的 action 和 bangs 工作原理,想到了一个解决办法。
失败的尝试
首先查阅技术文档我发现,Rainmeter 支持在 action 中进行 Bangs 命令的操作。例如我可以写如下的命令
LeftMouseUpAction=[!ClickThrough "-1"]
其中,LeftMouseUpAction
是鼠标弹起时执行的 action,而方括号中的!ClickThrough
则是一个 Bang 命令,它对小工具的点击穿透进行设置,语法如下:
- ClickThrough
-
!ClickThrough "setting" "config" setting: "0"为普通, "1"为开启点击穿透, "-1"为切换 config(可选): 脚本路径
在脚本中按以上设置,我们发现当点击时,可以成功的开启点击穿透模式,但是问题随之而来:当在点击穿透模式下,无法再对小工具进行点击,也就是无法复位原来的状态。
解决办法
新建一个小工具,名字为toggle
。
在原来的小工具中增添
LeftMouseUpAction=[!ClickThrough "1"][!hide "illustro\Player"][!Show "illustro\toggle" ]
而 toggle 中则是
[Rainmeter]
[MeterArtist]
Meter=STRING
w=120
h=40
x=75
Text="Unlock"
StringAlign=Center
StringCase=Upper
StringStyle=Bold
solidColor = 0,0,0,50
fontColor=255,255,255
FontSize=20
AntiAlias=1
ClipString=1
LeftMouseUpAction=[!ClickThrough "0" "illustro\Player"][!Hide "illustro\toggle"][!Show "illustro\player"]
这样,当点击原有小工具时,将响应两个操作:
- 设置点击穿透
- 显示 toggle
当我们想复位时,只需点击一下 unlock。
至于后面增加了对原有小工具的hide
和show
操作,是为了避免两个小工具重叠时引起的闪烁 bug。具体的布局样式可以根据个人需要自己定制。