Search
Categories
Articles
Rainmeter関連
ファイル置き場
お知り合いなど

スポンサーサイト

--.--.-- | スポンサー広告

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Rainmeter] WindowStatePlugin

2009.05.13 | Rainmeter-dev // Plugins

0 Comments

Rainmeter用のPluginです。環境依存的な部分の解決のために作ったので汎用なものではありませんが、使えそうな場面があればどうぞ。

■このPluginについて
ウィンドウの状態を取得するPluginです。
主に、「あのウィンドウが表示されてるときは○○の処理をして、隠れてるときは××の処理をしたい」というような、ウィンドウの状態によってIfEqualActionなどから処理を実行したい時に使います。

■必要なランタイムについて
VC2008ランタイムが未導入の環境でこのPluginを読み込もうとすると、エラーが出て起動しません。
その場合は、下記をインストールしてお使いください。

(※)Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ (x86)
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2

■ダウンロード
ファイル置き場には、MicrosoftのWindows Live SkyDriveを使用しています。以下のリンクからダウンロードしてください。


 ※表示されない場合はこちらから

ファイル更新日: 2009/05/13
MD5: CAF5B6B6DFCF602B8BA0035C393EC35B

使い方などは以下に格納。

■使い方
使い方は、Rainmeterに標準でついてくるWindowMessagePluginと似ています。
詳細については下記の設定項目の項をご覧ください。

まずWindowTitle(WindowMessagePluginでいうWindowName)とWindowClassに、ターゲットとするウィンドウのタイトルテキスト、ウィンドウクラス名を指定します。指定は、どちらかが存在すれば、もう片方は省略できます。

次に、CheckStateにウィンドウの状態を指定します。
ターゲットとなるウィンドウが、ここに指定された状態を全て満たしている場合に、「1」を返すようになります。満たしていない場合は「0」が返ります。
※返される値は、「0」と「1」の2つだけです。

WindowTitleとWindowClassについては、文字列の完全一致だけでは指定しづらいウィンドウのために、比較方法として部分一致・前方一致・後方一致も選べます。それぞれTitleMatching、ClassMatchingに指定することで使用できます。
※ワイルドカードや正規表現は使えません。

■設定項目
・WindowTitle
ウィンドウのタイトルテキストです。 これは、ウィンドウを特定するのに使用されます。
WindowClassが設定されていれば、省略することもできます。

・WindowClass
ウィンドウのクラス名です。 これは、ウィンドウを特定するのに使用されます。
WindowTitleが設定されていれば、省略することもできます。

・CheckState (必須)
ウィンドウの状態です。カンマ区切りで複数指定することができます。ただし、正反対の状態を指すフラグは同時に指定できません。
フラグとしては、以下のものが指定できます。

Exists : ウィンドウが存在する
NotExists : ウィンドウが存在しない

Enabled : ウィンドウが有効化されている
Disabled : ウィンドウが無効化されている

Visible : ウィンドウが可視化されている
Hidden : ウィンドウが不可視化されている

Normal : ウィンドウが最大化/最小化されていない(通常表示状態にある)
Maximized : ウィンドウが最大化されている
Minimized : ウィンドウが最小化されている

Foreground : ウィンドウがフォアグラウンドである(現在ユーザーが作業している)
Background : ウィンドウがフォアグラウンドでない

TopMost : ウィンドウが最前面に表示されている
NoTopMost : ウィンドウが最前面表示でない
※ウィンドウに設定されたフラグを見ているだけなので、必ずしも本来の表示状態を反映するとは限りません。

・TitleMatching
WindowTitleの比較に使用する方法を指定します。デフォルトはFullです。以下のものが指定できます。

Full : 完全一致
Partial : 部分一致
StartsWith : 前方一致
EndsWith : 後方一致

・ClassMatching
WindowClassの比較に使用する方法を指定します。デフォルトはFullです。以下のものが指定できます。

Full : 完全一致
Partial : 部分一致
StartsWith : 前方一致
EndsWith : 後方一致

■使用例
あるウィンドウが画面上に表示されている間、表示しているスキンを別の場所へ移動させる。
(最大化/最小化されることもあるなら、CheckStateにはVisibleを指定する)

20090513_WindowState

[StateWindow]
Measure=Plugin
Plugin=Plugins\WindowStatePlugin.dll
WindowClass=(ウィンドウクラス名を指定)
WindowTitle=(ウィンドウのタイトルテキストを指定)
CheckState=Normal
IfAboveValue=0
IfAboveAction=!execute [!RainmeterMove 140 5 #A#][!RainmeterMove 270 5 #B#]
IfEqualValue=0
IfEqualAction=!execute [!RainmeterMove 5 510 #A#][!RainmeterMove 5 781 #B#]

「最大化または最小化されているときに処理したい」というような場合は、このPlugin単体ではできないので、判定用のMeasureをそれぞれ作り、Calcの演算子を使って判定してください。

[MeasureA]
(略)
CheckState=Maximized

[MeasureB]
(略)
CheckState=Minimized

[MeasureC]
Measure=Calc
Formula=(MeasureA=1) || (MeasureB=1) ? 1 : 0
IfEqualValue=1
IfEqualAction=(実行したい処理)

■著作権および免責事項について
著作権は作者である"furu"が保有しています。
このPluginを使用したことによって生じたすべての障害・損害・不具合等に関して、作者は一切の責任を負いません。各自の責任においてご使用ください。

■再配布について
再配布はNGとします。

■更新履歴
2009/05/13 - version 0.2
first release

« [MoE] 土地権利書はお餅ですか? [MoE] Color Plate »

- Comments
0 Comments

管理者にだけ表示を許可する
- Trackbacks
0 Trackbacks


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。