解决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编码可以使中文正确显示