2009.11.01に、Rainmeter 1.1正式版がリリースされました。詳細はこちらの記事をご覧ください。
Rainmeter 1.1 正式版がリリースされました!
2009.11.01に、Rainmeter 1.1正式版がリリースされました。詳細はこちらの記事をご覧ください。
ウィンドウの移動処理についてのまとめです。
私的なまとめですので、公開されているビルドに反映されているものではありません。ご注意ください。
■対象となるRainmeterのバージョン
0.14.1 のマルチモニタ対応版 以降 〜 1.1 (r306)
■更新履歴(※更新のたびに、たぶん一番上にあがってきます)
- 2009.11.07 : Step.1: スキンウィンドウのドラッグ中は位置保存を行わないようにする(フラグ管理の修正)
- 2009.11.07 : Step.2: "On Desktop"なスキンウィンドウを正常にドラッグできないことがある問題を修正する
- 2009.11.10 : Step.3: スキンウィンドウを上方向の画面外にドラッグしたときに、画面内に戻ってこないようにする
- 2009.11.12 : Step.4: ドラッグ可能な状態でもLeftMouseUpActionを実行できるようにする(移動処理の総まとめ)
- 2009.11.22 : ドラッグ中に、スキンウィンドウが元の位置(ドラッグ開始位置)に描画されてしまうことがある問題を修正
※!RainmeterMoveの修正については、マルチモニタ対応の記事に書きました。
以下、続きに格納。
Rainmeter0.14.1で追加されたマルチモニタ対応についてのまとめです。
私的なまとめですので、公開されているビルドに反映されているものではありません。ご注意ください。
■更新履歴 (※更新のたびに、たぶん一番上にあがってきます)
- 2009.09.28 : WindowToScreen関数からexit関数を追い出す(MyInfoEnumProc関数の修正)
- 2009.10.07 : マルチモニタ環境でのモニタ順序と、座標や作業領域の取り扱い
- 2009.10.20 : Negative coordinatesの扱いと、上の件で間違ってたと思われるところを補足
- 2009.10.23 - 27 : (EnumDisplayMonitors APIでの)モニタの順序ってアテにならないのね…… → 別の方法を模索
- 2009.11.02 : これまでの変更に対応するために、WindowToScreen関数を修正して、一旦終わり
- 2009.11.11 : !RainmeterMoveをマルチモニタ対応にする
- 2009.11.15 : ユーザー切り替え時にEnumDisplayDevices APIが失敗してクラッシュを引き起こすことがある問題を修正
以下、続きに格納。
Windows Live WriterでFC2ブログに日時を指定して投稿すると、その日時をJSTからUTCに変換してしまうのか、9時間ズレて投稿されていたのですが、設定ファイルを漁っていたら面白そうな設定があったので試してみました。結果、ズレることなく投稿されるようになったのでメモ。
WLWで定義されているブログプロバイダのファイル(BlogProvidersB5.xml)の中を覗いていたら、一部のプロバイダのオプションにuseLocalTimeなるものが追加されていました。それを一時的に"Movable Type API"のものにも定義して起動してみたところ、時間がズレなくなりました。
この設定ファイルに直に書くのは問題あるかなぁと、本来の定義の仕方を探してみたところ、こちらのマニュアルが見つかりました。
- Windows Live Writer Provider Customization API - MSDN(英語)
上記のマニュアルは英語ですが、"wlwmanifest.xml"で検索すると解説してくださっているサイトさんがいろいろと見つかります。それらを参考に、wlwmanifest.xmlを定義してサイトへと仕込むことにします。
私の環境では、wlwmanifest.xmlは下のように定義しました。ファイルのエンコードはUTF-8にしておきます。
<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns="http://schemas.microsoft.com/wlw/manifest/weblog">
<options>
<clientType>MovableType</clientType>
<useLocalTime>Yes</useLocalTime>
</options>
<weblog>
<serviceName>たいぶろぐ</serviceName>
<homepageLinkText>ブログを開く</homepageLinkText>
<adminLinkText>管理画面を開く</adminLinkText>
<adminUrl><![CDATA[
http://blog48.fc2.com/control.php?mode=control&process=entry
]]></adminUrl>
<postEditingUrl><![CDATA[
http://blog48.fc2.com/control.php?mode=editor&process=load&eno={post-id}]]></postEditingUrl>
</weblog>
</manifest>
重要なのは<options></options>の間に定義した、<useLocalTime>Yes</useLocalTime>です。
その他にも追加したい設定があれば、マニュアルを参考にして追加します。
ファイルの作成が終わったら、アップロードして、そのファイルを読み込むようテンプレートを修正します。
まず「ファイルのアップロード」からアップロードして、そのURLを控えておきます。次に「テンプレートの設定」からテンプレートを弄りますが、スタイルシートの定義に続けて以下の内容を仕込みます。ファイルのURLは先に控えたものに書き変えてください。
<!--index_area--><link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://blog-imgs-38.fc2.com/a/t/a/atai/wlwmanifest.xml" />
<!--/index_area-->これで、ブログ側の設定は完了です。
次に、WLW側の設定を変更します。
「ブログ」−「ブログ設定の編集」から、再度「アカウント設定の更新」を行います。手順は以前に登録した通りです。プロバイダは"Movable Type API"を選び、投稿URLには"http://blog.fc2.com/xmlrpc.php"を指定します。
問題なければ、これでwlwmanifest.xmlがWLWに読み込まれ、日時指定をしても時間がズレなくなると思います。
(が、いかんせんマニュアルにも載ってなさそうなやり方ですし、環境によっては動かないかもしれませんが……)
あとはカテゴリの指定が反映されれば言うことないんですけどねぇ……。
こればかりはFC2側の問題のようなので、面倒だけど管理画面から設定するしかないんですかね……。
こまごまとした修正点や改善点のまとめです。
私的なまとめですので、公開されているビルドに反映されているものではありません。ご注意ください。
■更新履歴(※更新のたびに、たぶん一番上にあがってきます)
- 2009.04.20 : NetIn/NetOutでInterfaceを指定してCumulative=1とすると、正常な値が表示されない
- 2009.11.06 : Meter=STRINGでPercentual=1のときに、NumOfDecimalsの設定が有効にならない
- 2009.11.06 : Meter=STRINGでNumOfDecimals=0のときに、32ビットを越える値を表示できない
- 2009.11.06 : PerfMonプラグインで、32ビットを越える値を取得できない
- 2009.11.10 : ログに多バイト文字を出力できない
以下、続きに格納。
Aeroが有効な状態でスキンのZオーダーを"On Desktop"に変更したら、画面から消えてなくなってしまう問題についてのまとめです。
私的なまとめですので、公開されているビルドに反映されているものではありません。ご注意ください。
■更新履歴(※更新のたびに、たぶん一番上にあがってきます)
- 2009.10.30 : Desktop compositionが有効なら、"On Desktop"を使わせないようにする("Bottom"に切り替える)
- 2009.11.05 : "On Desktop"なスキンウィンドウが存在するときにDesktop compositonを無効→有効にされたら、その切り替えを検知して"Bottom"に切り替えるようにする
以下、続きに格納。
Windows 7の試用期間が切れる前にいろいろとWDMの機能を試してみてます。
WDM関連の設定を変更したときにちゃんと追随してくれるかどうかは、実環境でチェックしないとわかりませんからね。
すりガラス効果を得るのに、最初はDwmExtendFrameIntoClientArea APIを使って、ガラス効果になってる部分をクライアント領域まで広げる方法で試してみましたが、こいつはどうやらWS_CAPTION(それともボーダー?)を持ってないと有効にならない様子。確かに最初からクライアント領域しかないRainmeterでは広げる以前の問題でした。
単純にクライアント領域に使うのはDwmEnableBlurBehindWindow APIのようで、こちらを使うとすりガラス効果を得ることができました。コードはExampleにあるもののまま。簡単ですね。ちゃんとぼやけてるし、設定に応じて合成色も変わります。
簡単だけど、もしRainmeterで実現するなら、面倒な問題がちらほらありそう(リージョンを切らないと領域が矩形のままだけど、再描画のたびにスキンに合わせて切るとなると、負荷が高くなる)。
(※いろんな記事に分散してたのを統合しました)
Rainmeter0.14.1 〜 1.0で、壁紙や視覚効果の設定を変更すると、解像度変更とは関係ないのにスキンが"Refresh"されてしまう問題についてのまとめです。
本家でのコード変更についてのコメントや、私自身の変更案、コミット予定/済みなものなどが入り混じっていますので、決して公開されているビルドに反映されているものばかりではありません。ご注意ください。
※Rainmeter 1.1ではRefresh処理が省かれたことにより、処理が軽減されてクラッシュする可能性も小さくなりました。
■更新履歴(※更新のたびに、たぶん一番上にあがってきます)
- 2009.09.xx : タイマーを使って遅延処理するように変更(メッセージループの処理を阻害しないようにする)
- 2009.11.04 : タイマー形式を使わず、CTrayWindowでメッセージ検知して全スキンウィンドウを更新するように変更して、一旦終わり
以下、続きに格納。