• Exhen's Blog

    A simple, naive blog for Exhen.

  • 豆
  • HomeTagsTechMovie

巧妙设置 Rainmeter 鼠标穿透开关

X
如果你喜欢这篇文章
不如请作者喝瓶冰可乐

06 Oct 2018

Reading time ~2 minutes

TechWindowsRainmeterTutorial
X
扫描二维码分享到微信
分享 微博 豆瓣广播

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。具体的布局样式可以根据个人需要自己定制。



TechWindowsRainmeterTutorial
X
扫描二维码分享到微信
分享 微博 豆瓣广播