0

问题
我正在使用 Process 插件 ( https://docs.rainmeter.net/manual/plugins/process/ ) 来确定我的系统上正在运行哪些服务。
我当前的输出:
在此处输入图像描述

值(on/off)会适当更改,但我也想根据返回的值更改文本颜色。这是一个在我的系统上运行的示例(只要收到测量值,arrow.png 就会呈现红色):
在此处输入图像描述

根据我在 Rainmeter 论坛 ( https://forum.rainmeter.net/viewtopic.php?t=3335 ) 上阅读的一篇文章,最好的方法是将字体颜色添加为变量,然后像这样修改它:

[Variables]
indicatorText=255,255,255,100

;___SQL SERVER___
    [measureSQL]
    Measure=Plugin
    Plugin=Process.dll
    ProcessName=sqlservr.exe
    StringIndex=1
    Substitute="-1":"OFF","1":"ON"

    [measureSQLindicator]
    Measure=Calc
    Formula=[measureSQL]
    ;should change text color to green
    IfAboveValue=0
    IfAboveAction=!RainmeterSetVariable indicatorText 51,255,0

    [styleTextRight]
    StringCase=None
    stringalign=Right
    StringStyle=Bold
    StringEffect=Shadow
    FontEffectColor=0,0,0,20
    FontColor=#indicatorText#

;___SQL___
    [meterSQL]
    Meter=String
    MeasureName=measureSQL
    MeterStyle=styleTextLeft
    X=15
    Y=40
    W=97
    H=60
    Text="SQL Server"

    [meterSQLValue]
    Meter=String
    MeasureName=measureSQL
    MeterStyle=styleTextRight
    X=195
    Y=40
    W=97
    H=60
    Text="%1"

我知道 Process 插件返回的“-1”和“1”是字符串,需要转换为 int 类型才能被 if 语句识别,但我尝试过的所有内容都没有改变颜色。(包括此代码)

问题
如何使 Process 插件(“-1”、“1”)返回的值返回为整数,以便我的 if 语句可以识别它们?
或者有没有更好的方法来改变 Rainmeter 中的文本颜色?

4

1 回答 1

1

您可能已经从这个问题继续前进,但这是我的答案。

你走在正确的轨道上。问题是在 中measureSQL,你用 and 代替-11and ONOFFAboveValue不能测量。我删除了Substituteand AboveValue,并用一个IfCondition和两个MeterStyles 替换了它们。s 替换了对变量的MeterStyle需要,因此您不需要使用DynamicVariables。

[MeasureSQLStatus]
Measure=Plugin
Plugin=Process.dll
ProcessName=sqlservr.exe

[ToggleSQLStatusText]
Measure=Calc
Formula=[measureSQL]
;should change text color to green
IfCondition=MeasureSQLStatus > 0

IfTrueAction=[!SetOption ProcessStatusText MeterStyle styleONText]
IfFalseAction=[!SetOption ProcessStatusText MeterStyle styleOFFText]

[StyleONText]
FontColor=51,255,0,255
Text="ON"

[StyleOFFText]
FontColor=255,255,255,100
Text="OFF"

[ProcessNameText]
Meter=String
MeasureName=measureSQL
MeterStyle=styleTextLeft
X=15
Y=40
W=97
H=60
Text="SQL Server"

[ProcessStatusText]
Meter=String
StringCase=None
stringalign=Right
StringStyle=Bold
StringEffect=Shadow
FontEffectColor=0,0,0,20

X=195
Y=40
W=97
H=60
于 2017-09-14T02:26:24.373 回答