2008-09-19-02(金)
xlabelでちょっとした情報を出力してみる
いろいろ情報を出力したいのなら、xStatsClass.dllというのも必要になる
情報といっても、CPU使用量だとか、現在時刻だとか、そういう類のものだが
ただし、単純に任意の文字を出力するだけならxStatsClass.dllはいらない
・最低限、必要なファイル
xStatsClass-1.0.dll(置き場所は任意)
・モジュールのロード(当然、フォルダ記述も必要。以下の例はフォルダ部分省略)
loadmodule xStatsClass-1.0.dll
当然、xlabelもロードしてあるのが前提
・前準備
まず、ラベルを表示させないと意味がない
*label testpanel
testpanelX 0
testpanelY 0
testpanelWidth 240
testpanelHeight 48
testpanelPaintingMode ".multicolor"
testpanelColors c9c9c9
testpanelGradientColors 666666
testpanelGradientType ".vertical"
testpanelBorderMethod ".raised"
・labelText
testpanelText "TEST"
このように「Text」を指定すると、任意の文字をラベル内に表示できる
先にも述べたように、これは、xStatsClassは必要ない
この場合、ラベルのど真中に「TEST」と表示される
これが基本
testpanelText "TEST 1<br>TEST 2"
「Text」には、一部のHTMLタグが使用できる
改行をする場合は、"<br>"を使えばよい
・フォントの基本指定
testpanelFont "MS UI Gothic"
testpanelFontCharSet "SHIFTJIS_CHARSET"
testpanelFontHeight 10
testpanelFontColor 000000
とりあえず、最低限必要であろうもの
フォント名の指定、文字コード指定、フォントサイズ、色である
特に、出力文字が日本語文字の場合「FontCharSet」は重要になる
"DEFAULT_CHARSET"でも出るような気がするが、環境依存になりそうだし
"SHIFTJIS_CHARSET"を指定しておく
残念ながら、Shift-JISだけっぽい
まあ、ここで、EUCとかUTF-8とか使う必要もないだろうが
ファイル内容の一部を表示みたいなこともできるので、そういうとき気を付けたい
文字色は、背景にグラデかけてると読みづらい状態になることもある
まあ、このへんはLSに限ったことではないので割愛
・日付時刻を表示してみる
testpanelText "[date('yyyy.mm.dd(ddd)')]<br>[time('ii:nn:ss')]"
ブラケット「[]」は、xStatsClassの機能を表す
この機能のことを、エスケープシーケンスと呼んでいる
DOSとか使ってた人間には懐かしい呼び名(今もコード書いてる人間には使われると思うが)
ここでは
[date('yyyy.mm.dd(ddd)')]
[time('ii:nn:ss')]
この2つの機能を使っている
「date()」が日付埋め込み、「time()」が時刻埋め込みになる
いずれも「()」内が、フォーマット指定となり
「4桁年.2桁月.2桁日(曜日略)」(この"()"や"."はただの文字列)、
「2桁時:2桁分:2桁秒」を意味する
曜日の文字列に関しては、おそらくOSでの設定が有効になっている
日本語環境だと、日、月、火…という具合に出る模様
FontCharSet変えても、Sun、Monみたいにならない
このText設定を表示してみるとわかるだろうが
ちゃんと秒数がリアルタイムに変更される
つまり、xLabelは常に一定間隔で更新されている
(この間隔に関する設定「UpdateAlways」「UpdateInterval」もある)
・システム情報っぽいものを表示させる
testpanelText "[cpuInfo('brandid')] [cpuSpeed] [cpu()]%"
testpanelScroll "horizontal"
こうすると、CPUブランド名、CPU稼働スピード、CPU使用率が表示される
たぶん、1行で収まりきらないと思うので「Scroll」でスクロール表示させている
他にも、ディスクやメモリ、スワップ使用量など、いろいろ用意されている
memAvailable(units)
memInUse(units)
memTotal(units)
swapAvailable(units)
swapInUse(units)
swapTotal(units)
diskAvailable('drive', units)
diskInUse('drive', units)
diskTotal('drive', units)
Available が空き、InUse が使用量、Total が全容量
"units"には、「bytes」「KB」「MB」「GB」「%」というように表示単位を指定する
ディスクに関しては、'drive'、つまりドライブ名を指定する必要がある
testpanelText "C: [diskAvailable('c:',GB)]GB"
あくまでも、表示単位を指定してるだけで
結果に「GB」とかはついてこず、数値のみが返ってくるから
単純文字列として、後に"GB"とか書いておいてやらないといけない
testpanelText "MEM: [memAvailable(MB)]/[memTotal(MB)]MB([memAvailable(%)])%"
このように、一度に同じ項目を何度も呼び出してよい
volume()
なぜか、マスターボリューム値の呼び出しは、%が付いて返ってくる
ちなみに、「volume('winamp')」とすると、winampのボリューム値が返ってくるらしい
また、winampの曲名等の表示もできる
foobar2kは、foo_winampspamコンポーネントを入れたら、同様に扱えるらしい
たしかそうだったなと思うが、今、この項目使ってないからわからんw
ログオンユーザ名(userName)、OS名(OS)といったものは、引数を持たないので
"[OS]<BR>[username]" のように「()」を付けなくてもよい
全部説明しだすとキリがないので、他に何があるかは、xLabelのヘルプに譲る
一部機能は、環境によって使えないものもある(マザボの状態とか)
他に、文字列操作関数的な機能、if〜elseif〜endifの形の構文機能もあるが
またの機会に
Relay Keyword's Recent Title
- 設定記述
- 2008-10-08-01 xPopup.dll
- 2008-10-08-02 何はともあれxPopupの最低限の設定を書いてみる
- 2008-10-08-03 xPopupのセパレータやらタイトル行やら
- xlabel
- 2009-05-24-01 labelのcreateとdestroyを1アクションで
- 2008-09-22-01 パネル内にアイコンを表示してランチャーっぽいのを作る
- 2008-09-21-01 パネルを前面に出したり、半透明にさせてみたり