Rainmeterを使ってみようの巻 〜Plugin〜

  • 2022年09月06日 4.5対応

Plugin=ActionTimer

actionを実行する為のplugin。Meter等から実行するのと何が違うのかという点を公式のリファレンスで長々と説明しているが話の要点は以下の3つ。

  • Rainmeter Sectionで定義されたskin全体のUpdateとは独立してactionを実行する事が出来る。これによって短いUpdate間隔が必要なactionを実行しやすくなる。
  • actionを視覚的に連続して起こす事が容易になる。
    IfTrueAction=[!SetOption SomeMeter X "5"][!SetOption SomeMeter X "10"]
    上記のような指定だと2つのactionが同cycle内で実行されるので見た目的にはX=10しか認識出来ない。
  • Rainmeter Sectionで定義されたUpdateは下限値が16ミリ秒だがこのpluginでは1ミリ秒で動かす事も可能。

注意点としてはこのpluginは視覚効果等の動作時間の短いactionを想定している。Redrawはコストの高いactionなので動作時間の長い物には向かない。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
ActionList1
ActionList2
...
実行するactionのリスト。actionには下記で説明するaction名、RepeatとWaitという専用の2つのコマンドの計3つが指定可能で各actionは「|」で連結する。
action名
bangもしくはcommandを定義したUniqueなaction名を指定する。bangもしくはcommandを直接指定は出来ない。
Repeat
引数はAction名、Wait(ms)、Repeat数の3つ。注意点としてWaitとは指定されたactionの実行間隔であって指定された回数を実行し終えた後はWaitが入らない。
Wait
引数はWait(ms)。指定された時間だけ実行を停止する。
ActionList1=Repeat FirstAction, 5, 20 | Wait 5 | SecondAction
Action ActionListで使用するaction。注意点としてはskinのUpdateとは無関係に実行されるのでMeasureとMeterのUpdate及びRedrawを忘れない事。
[Variables]
U=[!UpdateMeasure MeasureChangeFont][!UpdateMeter *][!Redraw]

[MeasureChangeFont]
Measure=Plugin
Plugin=ActionTimer
ActionList1=SetFontSmall | Wait 1000 | SetFontBig
SetFontSmall=[!SetOption SomeMeter FontSize "10"]#U#
SetFontBig=[!SetOption SomeMeter FontSize "15"]#U#
IgnoreWarnings 0 エラーメッセージを無視するかどうかのOption。0はlogに残すで1は無視する。
Plugin Commands

ActionListは実行するactionの内容の定義。実際に実行するには下記のOptionのいずれかを引数として与えないと実行されない。

コマンド 概要
Execute 実行するActionListの番号を指定する。
LeftMouseUpAction=[!CommandMeasure MeasureName "Execute 1"]
Stop 停止するActionListの番号を指定する。注意点としてActionListの実行を完全に終えていないと再実行出来ない。終えていない場合再実行は無視される。
LeftMouseUpAction=[!CommandMeasure SomeMeasure "Stop 1"][!CommandMeasure SomeMeasure "Execute 1"]

Plugin=AudioLevel

音声Streamを扱うpluginだが対応はVista以降。VUメーターやスペクトラムアナライザに使う%値を得る事が出来る。ただしその手のMeterは短いUpdateが必要なので取り扱いには注意する事。このpluginは親Measureと子Measureに分かれている。スペアナ用のFFTがあるからだろう。親Measureで計算した値を子Measureで取得しさらにその値をMeterで表示するという事になる。なお、中の人はオーディオには無関心なので以下の説明は全て「よく分からないがたぶん」がつくのでそのつもりで読む事。

Parent measure options
Option名 defalt値 概要
Port Output 測定するのが入出力のどちらなのかを指定する。有効な値はOutputとInputの2つ。
ID None 測定するデバイスをデバイスIDで指定する。子MeasureのDeviceListを参照する事。指定がない場合はOSのdefaltデバイスとなる。

RMS options
Root mean squareの略で数学的には二乗平均平方根の事であり電気的には交流信号の実効値の事でありオーディオの世界では定格出力の事である。RMSで検索するとこれらが全部出てくるのでややこしい。でも結局やっている事は平均値を出すだけなので難しく考える事はない。

Option名 defalt値 概要
RMSAttack 300 値の増加に対する実効値すなわち平均値を算出する間隔。
RMSDecay 300 値の減少に対する実効値すなわち平均値を算出する間隔。
RMSGain 1.0 得られた最終的な値に掛ける倍率を指定する。

Peak options
RMSの様に二乗して平均して√を取るなんて面倒臭い事をせずこちらは単にピーク値を測定するだけ。しかしPeakAttackとPeakDecayでなんでこんなにdefalt値が違うんだろうか。

Option名 defalt値 概要
PeakAttack 50 RMSAttackと意味は一緒。
PeakDecay 2500 RMSDecayと意味は一緒。
PeakGain 1.0 RMSGainと意味は一緒。

FFT options
FFTつまり高速フーリエ変換に関するOption。細かい理屈なんか分からなくても何も問題ない。スペアナで使うデータを作るOption。

Option名 defalt値 概要
FFTSize 0 サンプリング周波数。2の累乗を指定する。通常は256, 512, 1024辺りを指定するらしい。これが大きいと精度も良くなるが当然CPU負荷も上がる。
FFTOverlap 0 窓関数を使って入力値を処理前に最適化する。細かい理屈は気にしなくて良い。通常はFFTSize/2を指定するらしい。
FFTAttack 300 RMSAttackと意味は一緒。
FFTDecay 300 RMSDecayと意味は一緒。
Bands 0 周波数バンド数。要するにスペアナで表示したいバンド数。
FreqMin 20 周波数バンドの計算に使う最小値を指定する。
FreqMax 20000 周波数バンドの計算に使う最大値を指定する。
Sensitivity 35.0 dBで表されるデータの感度。要はスペアナデータにかかる倍率。RMSGainやPeakGainとやる事は一緒。
Child measure options
Option名 defalt値 概要
Parent 必須。データ元の親Measureを指定する。
Parent=SomeMeasureName
Channel Sum Audio Channelを指定する。7.1chまで対応してるようだ。
  • L, FL, 0
  • R, FR, 1
  • C, 2
  • LFE, Sub, 3
  • BL, 4
  • BR, 5
  • SL, 6
  • SR, 7
  • Sum, Avg
Channel=L
Channel=FL
Channel=0
上記の例3つは全て同じ事。自分で分かりやすい物を使えば良い。
Type 必須。親Measureから得るデータのTypeを指定する。
RMS
指定されたChannelのRMS level(0.0-1.0)を得る。
Peak
指定されたChannelのPeak level(0.0-1.0)を得る。
FFT
指定されたFFTIdxのFFT level(0.0-1.0)を得る。
FFTFreq
指定されたFFTIdxの周波数(Hz)を得る。
Band
指定されたBandIdxのFFT level(0.0-1.0)を得る。
BandFreq
指定されたBandIdxの周波数(Hz)を得る。
Format
バイスの音声フォーマットを得る。
DeviceStatus
バイスのstatus(0, 1)を得る。
DeviceName
バイス名を得る。
DeviceID
バイスIDを得る。
DeviceList
親MeasureのID Optionで使用可能なデバイスIDのリストを得る。
FFTIdx 0 親Measureから得たいFFTのサンプル数。有効な値は0からFFTSize/2まで。親MeasureにFFTSizeが指定されていなければなれない。
BandIdx 0 データを取得するBand IDを指定する。有効な値は0からBands-1まで。親MeasureにFFTSizeとBandsが指定されていなければなれない。

Plugin=CoreTemp

CoreTempからデータを取得する。当たり前だがCoreTempが動いていないとお話にならない。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
CoreTempType 測定するデータを指定する。有効な値は下記。
CPU
CpuName
CPUモデル名。
CpuSpeed
周波数。BusSpeed*BusMultiplier。
MaxTemperature
全てのコアの最高温度。
BusSpeed
バス周波数。
BusMultiplier
動作倍率。
Vid
電圧値。
Tdp
Power
CORE。CoreTempIndexが必要。
Temperature
温度。
TjMax
動作可能な最高温度。
CoreBusMultiplier
動作倍率。
CoreSpeed
周波数。
Load
コアロードの%値。
CoreTempIndex CoreTempTypeで使うコア番号を指定する。ただしスタートは0からなので注意。

Plugin=FileView

フォルダとファイルに関するplugin。これも親Measureと子Measureに分かれている。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
Path 親Measureにおいては対象とするフォルダPathを、子Measureにおいては親Measure名を指定する。
Parent measure options
Option名 defalt値 概要
FinishAction フォルダ及びファイルの読み取りを終えた時に実行するactionを指定する。これは他のactionが発火する前に確実に読み取りを終えるのに使う。
Recursive 0 1を指定するとファイル数、フォルダ数とフォルダサイズの計算にサブフォルダを含める。サブフォルダ内ファイルのindexはしない。2を指定すると全てのファイルをindexする。ただしフォルダはindexされない。また FollowPath及びPreviousFolder Command、ShowFile、ShowFolder及びShowDotDot Optionは無効となる。
Count 1 1度にindexするitem数。子Measureのindexで使う。
ShowDotDot 1 1を指定すると「..」フォルダ(親フォルダ)を含める。
ShowFolder 1 0を指定するとフォルダは無視される。
ShowFile 1 0を指定するとファイルは無視される。
ShowHidden 1 0を指定すると隠しフォルダ及び隠しファイルは無視される。
ShowSystem 0 1を指定するとシステムファイルを含む。
HideExtensions 0 1を指定すると子MeasureのType=FileName時に拡張子が無視される。
Extensions 対象とする拡張子を「;」で区切ったリストで指定する。
SortType Name ソート方法を指定する。有効な値はName、Size、Type、Dateの4つ。
SortDateType Modified SortType=Date時に使う。有効な値はModified、Created、Accessedの3つ。
SortAscending 1 0を指定すると降順でソートする。
WildcardSearch ワイルドカードに使う文字を指定する。通常は「*」か「?」を使う。しかしこのOptionいるのか。
Child measure options
Option名 defalt値 概要
Index 1 親Measureから得るデータのindexを指定する。親Measureで指定されたCountを超えたらIndex=1として扱われる。
IgnoreCount 0 1を指定するとIndexはリスト内のフォルダもしくはファイルの実際の番号を表す。これは常に特定のフォルダもしくはファイルを表示する場合に有効。
Type FolderPath
  • 親MeasureのPath Optionから得るデータ
    FolderPath
    Path Optionで指定されたフォルダPath。なお最後に\が付く。
    FolderSize
    Path Optionで指定されたフォルダサイズ
    FileCount
    Path Optionで指定されたフォルダ内のファイル数。
    FolderCount
    Path Optionで指定されたフォルダ内のフォルダ数。
  • 指定したIndexのItemから得るデータ
    FileName
    フォルダもしくはファイルの名前。
    FileType
    ファイルの場合は拡張子、フォルダの場合は空。
    FileSize
    ファイルの場合はサイズ、フォルダの場合は空。
    FileDate
    フォルダもしくはファイルの日時。種類をDateTypeで別途指定する。
    FilePath
    フォルダもしくはファイルのPath。なおフォルダの場合は最後に\が付かない。
    PathToFile
    フォルダもしくはファイルの親フォルダのPath。なお最後に\が付く。
    Icon
    フォルダもしくはファイルのアイコンのPath。
DateType Modified Type=Date時に日時のtypeを指定する。有効な値はModified、Created、Accessedの3つ。
IconPath Type=Icon時にアイコンを保存するpath。未指定の場合はskinフォルダとなる。
IconSize Medium 保存するアイコンのサイズを指定する。有効な値はSmall(16x16)、Medium(32x32)、Large(48x48)、ExtraLarge(256x256)の4つ。
Parent measure commands
コマンド 概要
Update 親MeasureをUpdate、つまりIndexし直す。
PageUp 現在表示しているページ数を戻す。例えばCount=8でIndexされたItem数が25の場合当然全ページ数は4となる。現在2ページ目が表示されているならば、PageUpした場合1ページ目に移る。
PageDown PageUpと逆でページ数を進める。しかしこの挙動普通逆じゃないのか。
IndexUp Indexを一つ減らす。つまり表示されているItemのIndexが2-9ならば1-8になる。
IndexDown Indexを一つ増やす。つまり表示されているItemのIndexが1-8ならば2-9になる。
PreviousFolder Pathを親フォルダに移す。
Child measure commands
コマンド 概要
FollowPath Indexで指定されたItemがフォルダの場合そのPathを親フォルダのPath Optionに格納する。ファイルならば関連づけられた方法で開く。
Open Indexで指定されたItemを関連づけられた方法で開く。フォルダならば当然explorerで開く。
Other commands
コマンド 概要
ContextMenu 親Measure子Measure共に有効。Measureで指定されたItemのOSのコンテキストメニューを開く。親MeasureならばPathで指定されたフォルダとなる。
!CommandMeasure "MeasureName" "ContextMenu"
親Measureの場合は指定したフォルダもしくはファイルのコンテキストメニューを開く事が出来る。
!CommandMeasure "ParentMeasureName" "ContextMenu C:\Some Folder\Some File.exe"
Properties 親Measure子Measure共に有効。Measureで指定されたItemのOSのプロパティを開く。親MeasureならばPathで指定されたフォルダとなる。
!CommandMeasure "MeasureName" "Properties"
親Measureの場合は指定したフォルダもしくはファイルのプロパティを開く事が出来る。
!CommandMeasure "ParentMeasureName" "Properties C:\Some Folder\Some File.exe"

Plugin=FolderInfo

フォルダ情報を取得するplugin。さて上記のFileViewと何が違うのかという素朴な疑問が湧くが機能的にはFolderInfを使う理由など全くない。Version Historyを見るとFileViewの方が後から追加されているのでFolderInfへの機能追加よりも新しくpluginを作った方が手っ取り早かったんだろう。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
Folder 下記のどちらかを指定しなくてはならない。
  • フォルダPath。
    Folder=C:\MyFolder
  • 他のMeasure名
    Folder=[MainMeasure]
    この場合MainMeasureで指定されたフォルダとなる。
InfoType 取得するデータのtype。有効な値はFileCount、FolderCount、FolderSizeの3つ。
RegExpFilter 対象とするファイルを正規表現で指定する。
IncludeSubFolders 0 1を指定するとサブフォルダを含める。
IncludeHiddenFiles 0 1を指定すると隠しファイルを含める。
IncludeSystemFiles 0 1を指定するとシステムファイルを含める。

Plugin=InputText

入力された文字列を用いてコマンドを実行する為のplugin。

Options
Option名 defalt値 概要
Command1
Command2
...
実行するactionを指定する。入力された文字列は「$UserInput$」に格納される。
Command1=[!SetVariable SomeVar "$UserInput$"]
入力欄を複数使うのなら[MeasureName]とsection variableで取り出しても良い。
DefaultValue 入力欄に表示されるdefalt文字列。
Password 0 1を指定するとテキストがアスタリスク表示となる。
InputLimit unlimited 入力文字数の制限値を指定する。改行コードは/r/nの2文字扱いとなる。
InputNumber 0 1を指定すると数字のみの入力となる。
X
Y
入力欄の表示位置。ただしr及びRの相対指定は未サポート。
W
H
入力欄の表示サイズ。
SolidColor 255,255,255,255 入力欄の背景色。ただしアルファ値は背景だけでなくテキストを含む全体のそれを変える。
FontColor 0,0,0 テキストの文字色を指定する。ただしアルファ値は無視される。設定したい時はSolidColorを使う事。
FontFace テキストのフォント名を指定する。
FontSize テキストのフォントサイズを指定する。
StringStyle テキストのstyleを指定する。有効な値はNormal、Bold、Italic、BoldItalicの4つ。
StringAlign Left テキストの表示位置を指定する有効な値はLeft、Right、Centerの3つ。
TopMost 入力欄のZ軸。1を指定するとアクティブな間は手前に表示される。0だとその逆。
FocusDismiss 1 0を指定するとENTERもしくはESCAPEを押すまでフォーカスを保持し続ける。defaltの1は普通にフォーカスを失う。
OnDismissAction 0 ENTERを押さずにフォーカスを失った時に実行されるaction。
Bangs
LeftMouseUpAction=[!CommandMeasure MeasureInputText "ExecuteBatch ALL"]
IfAboveAction=[!CommandMeasure MeasureInputText "ExecuteBatch 3"]
OnRefreshAction=[!CommandMeasure MeasureInputText "ExecuteBatch 1-4"]

ExecuteBatchは"ExecuteBatch All / # / #-#"という文法で使う。

  • ALLはMeasureで指定されたCommandを全て実行
  • #は指定された番号のCommandを実行
  • #-#は指定された範囲のCommandを実行

Plugin=Ping

名前そのままにPingを打つplugin。Ver4.5以降はIPv6も有効。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
DestAddress DomainまたはIPを指定する。
UpdateRate 32 pingを打つ間隔を指定する。
Timeout 30000 タイムアウトをミリ秒で指定する。
TimeoutValue 30000 タイムアウトした時にMeasureが返す値を指定する。
FinishAction pingが成功した時もしくはタイムアウトした時に実行するactionを指定する。

Plugin=Power

電源に関する情報を取得する。主にバッテリー関連。ただし中の人はWindowsで動くモバイル機器を持っておらず検証しようがないのでそのつもりで読むこと。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
PowerState
ACLine
0ならバッテリー、1ならAC電源駆動
Status
0
バッテリーが刺さってない
1
充電中
2
極めて少ない
3
少ない
4
それ以上
Status2
1
バッテリー残量66%以上
2
バッテリー残量33%以下
4
バッテリー残量5%以下
8
充電中
128
バッテリーが刺さってない
255
不明
Lifetime
バッテリーでの残り駆動時間
Percent
バッテリー残量の%
Hz
CPU周波数(Hz)
MHz
CPU周波数(MHz)
Format %H:%M PowerState=Lifetime時のフォーマット。

Plugin=Quote

下記の2種類のいずれか方法でランダムな値を得るplugin。

  • テキストファイル内の文字列を得る。
  • フォルダー内ファイルのFull Pathを得る。
Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
PathName ファイルもしくはフォルダのPathを指定する。
  • ファイルが指定されたならばMeasureはテキストファイルの一部を返す。Separator Optionが有効。
  • フォルダが指定されたならばMeasureはランダムに選ばれたフォルダ内ファイルのFull Pathを返す。SubfoldersとFileFilter Optionが有効。
Separator #CRLF# 文字列の区切り。defaltでは改行コード。
Subfolders 1 1を指定した場合サブフォルダも有効。0を指定した場合は当然フォルダ直下のみ。
FileFilter 選択されるファイルの「;」で分割されたフィルタを指定する。ワイルドカードは「*」と「?」が使える

Plugin=ResMon

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
ResCountType Default: GDI リソースのtypeを指定する。有効な値は下記
GDI
GDIオブジェクト数
USER
USERオブジェクト数
Handle
開かれているハンドル数
Window
windowハンドル数
ProcessName プロセス名を指定する。

Plugin=RunCommand

名前通りコマンドを実行するplugin。主にCLIプログラム、つまりCUIプログラムの実行に使う。下記の様なactionでの実行とはいくつかの違いがある。

LeftMouseUpAction=["SomePath\SomeProgram.exe" "SomeParameters"]
  • コマンドプロンプトwindowを隠して実行することが出来る。
  • コマンドのoutputをMeasureの返り値とするかまたはファイルに保存する事が出来る。
  • コマンドの終了を検出することが出来る。
  • エラーコードを検出することが出来る。
  • timeoutを設定することが出来る。

Measureの返り値が文字列の場合それは前出したようにCLIプログラムのoutputである。また数値の場合それはプログラムの実行状況を示す。未実行は-1、実行中は0、エラーで終了した時はエラーのtype、正常終了した時は1を返す。またProgram OptionとParameter Optionの間に違いは何もない。実際公式のリファレンスでもProgramは未指定にしておいてParameterで全コマンドラインを指定する方が良いとはっきり書いてある。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
Program %ComSpec% \U \C 実行するプログラムを指定する。未指定の場合は環境変数%ComSpec%に引数/Uと/Cが付いた物となる。
Parameter None Programで指定したプログラムに与える引数を指定する。Programが未指定の場合コマンドライン全体となる。
State Hide プログラムの実行状態を指定する。有効な値は下記
Hide
windowを隠して実行しようとする。当たり前だがこのOptionは入力が必要なプログラムに使ってはいけない。
Show
windowを表示して実行する。
Minimized
windowを最小化して実行する。
Maximized
windowを最大化して実行する。
FinishAction None プログラムが終了した時に実行するactionを指定する。
OutputFile outputを保存するファイルのPathを指定する。
OutputType UTF-16 OutputTypeで指定されたファイルの文字コードを指定する。有効な値は下記さて、公式のレファレンスではcmd.exeの文字コードについて書かれているがそれは英語環境の話で日本語環境はShift_JISなので何の関係もない。
StartInFolder Skin folder プログラムが使う初期フォルダを指定する。defaltではskinフォルダ。
Timeout -1 タイムアウト値をミリ秒で指定する。

注意点として、RainmeterはOption前後の引用符を除去するので引用符で囲う必要がある場合は二重にする事。

Program=""C:\Program Files\Some Program\Something with a space.exe""
Plugin Commands

3.3.2では!CommandMeasureではサポートしてないと怒られる。4.0では無事動くのでバグなんだろう。

コマンド 概要
Run プログラムを実行する。このpluginはこのコマンド以外では実行出来ない。
LeftMouseUpAction=[!CommandMeasure MeasureName "Run"]
Close プログラムを閉じる。その際確認のダイアログが出るだろう。
LeftMouseUpAction=[!CommandMeasure MeasureName "Close"]
Kill プログラムを確認無しで閉じる。普通State=Hide時に使われる。
LeftMouseUpAction=[!CommandMeasure MeasureName "Kill"]
Error codes

pluginが返すエラーコード一覧

code 概要
100 不明なコマンド。有効でない!CommandMeasureコマンドを指定した。
101 プログラムが実行中。プログラム実行中に再実行しようとした。
102 プログラムが未実行。プログラムが未実行なのにCloseもしくはKillコマンドを指定した。
103 プログラムが実行不可。Program Optionで指定されたPathが誤っている。
104 ファイルの保存に失敗。
105 プロセスの終了に失敗。この現象は希に起こる。その場合はタスクマネージャーから手動でプロセスを閉じなければならない。
106 pipeの作成に失敗。この現象は希に起こる。プログラム実行pipeの作成に失敗してるので当然プログラムは実行されない。

Plugin=SpeedFan

SpeedFanからデータを取得するplugin。当たり前だがSpeedFanが動いていないとお話にならない。%値として使うならばMinValueとMaxValueを指定すること。

  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
SpeedFanType Temperature 取得する情報のtype。有効な値は下記
Temperature
温度。SpeedFanScaleで別途単位を指定。
Fan
Fan速度。
Voltage
電圧。
SpeedFanNumber SpeedFanのConfigureを開くとTemperature、Fans、Voltageとタブがあるがそれぞれのタブの項目に上から順番に番号を振ってその番号を指定する。ただし番号は0から。ちなみにこの項目の並びはそれぞれの環境で違う。
SpeedFanScale C 温度の単位を指定する。有効な値は下記
C
摂氏
F
華氏
K
ケルビン

Plugin=UsageMonitor

Windows Performance Monitorから情報を取得するplugin。詳しい事はPerfmon.exeを実行してみれば分かるが取得出来るデータ群はカテゴリ/カウンタ/インスタンスという階層構造になっている。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
Alias None 特定のカテゴリとカウンタの組み合わせのエイリアス
Alias=CPU
Category: Process|Counter: % Processor Time
Alias=RAM
Category: Process|Counter: Working Set - Private
Alias=RAMSHARED
Category: Process|Counter: Working Set
Alias=IO
Category: Process|Counter: IO Data Bytes/sec
Alias=IOREAD
Category: Process|Counter: IO Read Bytes/sec
Alias=IOWRITE
Category: Process|Counter: IO Write Bytes/sec
Alias=GPU
Category: GPU Engine|Counter: Utilization Percentage
但しWindows 10 Fall Creators Update以降が必要
Alias=VRAM
Category: GPU Process Memory|Counter: Dedicated Usage
但しWindows 10 Fall Creators Update以降が必要
Alias=VRAMSHARED
Category: GPU Process Memory|Counter: Shared Usage
但しWindows 10 Fall Creators Update以降が必要
Category
Counter
None カテゴリおよびカウンタ名。当たり前だがこの2つは必ずセットで指定する事。そしてこれらが指定された場合Aliasは無視される。
Category=Process
Category=PhysicalDisk
Counter=%Processor Time
Counter=Bytes Read/sec
Index 0 全てのインスタンスが評価され値の高い順にソートされる。
Index=0
数値は全インスタンスの合計値を返し文字列は「Total」を返す。
Index=-1
数値は全インスタンスの平均値を返し文字列は「Average」を返す。
Index=1, Index=2...
数値は指定された位置のインスタンスの値を返し文字列はインスタンス名を返す。
インスタンスの値が0の場合空の文字列を返す。また、インスタンスの値が存在しない場合は他のインスタンスと区別が出来ないためソート出来ない。従ってリストから除外される。
Name None カウンタ内の特定のインスタンス名を指定する。これが指定された場合Indexは無視される。つまりインスタンスの指定方法はIndexとNameの2つ。
Name=Rainmeter
Name=chrome
Blacklist _Total|Idle 除外するインスタンス名を|で繋いだリストを指定する。defalt値は「_Total」と「Idle」の2つとなっているが、このOptionを指定した場合defalt値は無効となるので改めて指定する事。
Whitelist None 使用するインスタンス名を|で繋いだリストを指定する。このOptionを指定した場合Blacklistは無視される。
Rollup 1 defaltの1はsvchost等の複数同一プロセスを単一プロセスとして扱う。0を指定すると個々のプロセスとなる。
Percent 0 返り値を%値として扱う場合に1を指定する。ただしカウンタが_Totalインスタンスを持っている必要がある。ない場合は使用しないこと。Alias=CPUの場合は自動的に1が指定されるが手動で0を指定する事も出来る。
RawValue 0 1を指定するとPerfmon.exeのGUIに表示される物ではなく、RawValueつまり生データが返る。
PIDToName 0 1を指定するとインスタンスの返り値のPIDに関連づけられたプロセス名を返す。
  • このPluginは常に文字列と数値の2つを返す。String Meterでは当然文字列が使われるので数値を使いたい場合は[MyMeasure:]とSection変数を使うこと。その時は当然DynamicVariables=1も必要。
  • UsageMonitor pluginはRainmeterとは独立して各カテゴリごとにスレッドを生成する。従ってplugin自体はSkinのUpdateまたはMeasureのUpdateDividerに依存しない。Measureは単にpluginからデータを受け取るだけである。
  • Skinを配布するつもりならローカライズに注意する事。UsageMonitor自体はローカライズされているが英語以外の言語でカテゴリおよびカウンタを指定するとその英語以外の言語のPCでしか動作しない。英語のカテゴリおよびカウンタ名が知りたい場合は
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009\Counter
    を参照する事。
  • AdvancedCPUやPerfMon同様にUsageMonitorもDBが希に壊れるケースがあるらしい。
[MeasureCPU]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=0
[MeasureTop]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=1
[MeasureRainmeter]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Name=Rainmeter

Plugin=Win7AudioPlugin

Audio Deviceとボリュームに関するplugin。値のtypeが文字列の場合は使われているデバイス名を返し数値の場合はボリュームを%(0-100)で返す。

Options
  • 全てのMeasure General Optionが有効。
Bangs
コマンド 概要
!CommandMeasure "MeasureWin7Audio" "ToggleNext" Audio Deviceを切り替える。
!CommandMeasure "MeasureWin7Audio" "TogglePrevious" Audio Deviceを切り替える。
!CommandMeasure "MeasureWin7Audio" "SetOutputIndex index" 使用するDeviceをindexで指定する。
!CommandMeasure "MeasureWin7Audio" "ToggleMute" ミュートを切り替える。
!CommandMeasure "MeasureWin7Audio" "SetVolume x" ボリュームの値を指定する。
!CommandMeasure "MeasureWin7Audio" "ChangeVolume x" ボリュームの値をx%変更する。負の数も当然可能。

Plugin=WindowMessagePlugin

Window Messageを使って他のアプリケーションとの情報の送受信をするplugin。

Options
  • 全てのMeasure General Optionが有効。
Option名 defalt値 概要
WindowName window名を指定する。WindowClassが指定されている場合は必要ない。
WindowClass windowクラスを指定する。WindowNameが指定されている場合は必要ない。
WindowMessage Window Messageを指定する。message、wParam、lParamの3つを指定する必要がある。wParam及びlParamはmessage毎に意味が違う。WindowMessageが指定されない場合はMeasureはwindowのtitleを返す。
Bangs

messageはcommandを通して送る事も出来る。

!CommandMeasure "MeasureName" "SendMessage Msg wParam lParam"