Как изменить счетчики или переменные на основе значения, которое возвращает плагин PROCESS?

ПРОБЛЕМА
Я использую плагин Process ( https://docs.rainmeter.net/manual/plugins/process/), чтобы определить, какие службы работают в моей системе.
Мой текущий вывод:
введите описание изображения здесь

Значения (вкл / выкл) меняются соответствующим образом, но я также хочу изменить цвет текста на основе возвращенного значения. Вот пример, который работает в моей системе (у стрелки.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"

Я знаю, что "-1" и "1", возвращаемые плагином Process, являются строками и должны быть преобразованы в тип int для распознавания операторами if, но все, что я пробовал, не изменило цвет. (включая этот код)

ВОПРОС
Как сделать так, чтобы значения, возвращаемые плагином Process ("-1", "1"), возвращались как целые числа, чтобы они могли быть распознаны моими операторами if?
Или есть лучший способ изменить цвет текста в Rainmeter?

1 ответ

Решение

Вы, вероятно, отошли от этого вопроса, но вот мой ответ.

Вы были на правильном пути. Проблема заключалась в том, что в measureSQLВы заменяли -1 а также 1 с ON а также OFF, который AboveValue не может измерить. Я удалил Substitute а также AboveValueи заменил их IfCondition и два MeterStyles. MeterStyles заменить потребность в переменной, так что вам не нужно использовать 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
Другие вопросы по тегам