使用Rainmeter + UsageMonitor plugin皮肤实现的简单实时网速显示

解决Rainmeter 默认提供的netIn,netOut存在的只能显示单个网卡,不能显示多网卡的合计流量的问题

需要使用到的是Rainmeter4.2及后续更新的版本才有的plugin:UsageMonitor.dll

 使用方法参考【图片】【技术交流】关于Rainmeter 4.2 新插件UsageMonitor 的使用方法【rainmeter吧】_百度贴吧

plugin:UsageMonitor.dll 的使用需要从Windows 性能监视器获取三个关键参数:计数器的类别,计数器,计数器的实例
 

获取方法

从Windows 性能监视器获取:打开 计算机管理——>性能——>监视工具——>性能监视器

在这里就可以看到UsageMonitor 所需的参数,计数器的实例在UsageMonitor中用index表示。

这里用到从性能监视器获取到的三个关键参数:Network Interface、Bytes Received/sec、0

[NetworkIn0]
Measure=Plugin
Plugin=UsageMonitor
;计数器的类别
Category=Network Interface 
;计数器,这里是(获取网络接收速度(字节/秒))
Counter=Bytes Received/sec 
;计数器的实例
Index=0 

Index=0 返回所有实例的数值总和,以及字符串“Total”。这是Index的默认值。
Index=1,Index=2等等。 返回排序中相应的实例的数值,以及该实例名称的字符串值。
Index=-1 返回所有实例的数值平均值,以及字符串“Average”。

实现的.ini

[Rainmeter]
Update=1000

[Variables]
fontName=Bahnschrift Light
FontColor=255, 255, 255,255
FontSize=14
;______________________________________________________________________
;______________________________________________________________________

[styleLeftText]
;文本对齐
StringAlign=Left 
;文本的大小写
StringCase=None 
;字体加粗Bold\Regular
StringStyle=Bold 
;文本阴影效果
StringEffect=Border
;阴影颜色,这里为黑色(0,0,0),透明度为 20(0-255 范围)。
FontEffectColor=101, 101, 101,255
FontColor=#FontColor# 
;字体名称
FontFace=#fontName# 
FontSize=#FontSize# 
;抗锯齿效果,1启用
AntiAlias=1 
;文本裁剪,防止超出测量器区域的文字显示
;ClipString=1 

[styleRightText]
StringAlign=Right
StringCase=None
StringStyle=Bold
StringEffect=Border
FontEffectColor=101, 101, 101,100
FontColor=#FontColor#
FontFace=#fontName#
FontSize=#FontSize#
AntiAlias=1
;ClipString=1

;绘制一个具有颜色和透明度的实心矩形
[styleSeperator]
SolidColor=255,255,255,15 
;______________________________________________________________________
;______________________________________________________________________

;网卡(总计)
[NetworkIn0]
Measure=Plugin
Plugin=UsageMonitor
;计数器类别名称
Category=Network Interface 
;计数器,获取网络接收速度(字节/秒)
Counter=Bytes Received/sec 
;计数器实例
Index=0 

; Index=0 返回所有实例的数值总和,以及字符串“Total”。这是Index的默认值。
; Index=1,Index=2等等。 返回排序中相应的实例的数值,以及该实例名称的字符串值。
; Index=-1 返回所有实例的数值平均值,以及字符串“Average”。

[NetworkOut0]
Measure=Plugin
Plugin=UsageMonitor
Category=Network Interface
; 获取网络发送速度(字节/秒)
Counter=Bytes Sent/sec
Index=0
;______________________________________________________________________
;______________________________________________________________________
;单位转换
;转换为KB
[NetworkInKB0]
Measure=Calc
Formula=NetworkIn0 / 1024
;实时刷新
DynamicVariables=1

;转换为MB
[NetworkInMB0]
Measure=Calc
Formula=NetworkIn0 / 1048576
DynamicVariables=1

;单位判断
[NetworkInDisplay0]
Measure=Calc
Formula=NetworkInKB0
IfCondition=(NetworkInKB0 > 1024)
IfTrueAction=[!SetOption MeterNetworkInValueUnit0 Text "%1M↓"][!UpdateMeter MeterNetworkInValueUnit0][!Redraw]
;[!SetOption NetworkInDisplay0 Formula "NetworkInMB0"]
;将 NetworkInDisplay0 的公式改为 NetworkInMB,即在 NetworkInDisplay0 中会使用 NetworkInMB0 来显示网络流量的值(即转换为MB)
;修改 MeterNetworkInText0 测量器的文本,显示为 MB 格式(例如,123 MB)
;更新 MeterNetworkInText0 测量器,以使更改生效。!Redraw:重新绘制更新的面板,确保 UI 刷新。
IfFalseAction=[!SetOption MeterNetworkInValueUnit0 Text "%1K↓"][!UpdateMeter MeterNetworkInValueUnit0][!Redraw]
DynamicVariables=1

;数值判断
[MeasureInCond0]
Measure=Calc
Formula=NetworkInKB0 > 1024 ? NetworkInMB0 : NetworkInKB0
DynamicVariables=1
;----------------------------------------------------------------------
[NetworkOutKB0]
Measure=Calc
Formula=NetworkOut0 / 1024
DynamicVariables=1

[NetworkOutMB0]
Measure=Calc
Formula=NetworkOut0 / 1048576
DynamicVariables=1

 [NetworkOutDisplay0]
 Measure=Calc
 Formula=NetworkOutKB0
 IfCondition=(NetworkOutKB0 > 1024)
 IfTrueAction=[!SetOption MeterNetworkOutValueUnit0 Text "%1M↑"][!UpdateMeter MeterNetworkOutValueUnit0][!Redraw]
 IfFalseAction=[!SetOption MeterNetworkOutValueUnit0 Text "%1K↑"][!UpdateMeter MeterNetworkOutValueUnit0][!Redraw]
 DynamicVariables=1

[MeasureOutCond0]
Measure=Calc
Formula=NetworkOutKB0 > 1024 ? NetworkOutMB0 : NetworkOutKB0
DynamicVariables=1
;______________________________________________________________________
;______________________________________________________________________
;
[MeterNetworkOutValueUnit0]
Meter=String
MeasureName=MeasureOutCond0
Text=%1 
DynamicVariables=1
MeterStyle=styleRightText
X=178
Y=0
W=0
;小数保留
NumOfDecimals=1

[MeterNetworkInValueUnit0]
Meter=String
MeasureName=MeasureInCond0
Text=%1 
DynamicVariables=1
MeterStyle=styleRightText
X=100
Y=0
W=0
NumOfDecimals=1

注:ANSI编码可以使中文正确显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值