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

スポンサーサイト

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

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

[Rainmeter-dev] いろいろ

2009.11.29 | Rainmeter-dev // Issue/互換性問題やバグ修正

0 Comments

こまごまとした修正点や改善点のまとめです。
私的なまとめですので、公開されているビルドに反映されているものではありません。ご注意ください。

■更新履歴(※更新のたびに、たぶん一番上にあがってきます)
- 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 : ログに多バイト文字を出力できない(2009.11.29 追記)

以下、続きに格納。

続きを読む »

スポンサーサイト

デスクトップウィンドウとシェルウィンドウ

2009.11.27 | Programming

0 Comments

デスクトップウィンドウとシェルウィンドウについてメモ書き。

■デスクトップウィンドウ
デスクトップウィンドウは、いわゆるデスクトップのこと。GetDesktopWindow APIでハンドルを取得できる。
トップレベルウィンドウの親ウィンドウはこのウィンドウになる(GetAncestor APIをGA_PARENTで呼び出したときの戻り値が、GetDesktopWindow APIの戻り値と同一となる)。
このウィンドウはcsrss.exeが持っている。

■シェルウィンドウ
素のWindowsだと、"Program Manager"なウィンドウのこと。GetShellWindow APIでハンドルを取得できる。
シェルを他のものに入れ替えていなければ、このウィンドウはexplorer.exeが持っている。

デスクトップにあるアイコン("FolderView")やタスクバーなどは、シェルウィンドウ(またはexplorerが持つ別ウィンドウ)が持っている。

■XPでの結果

- GetDesktopWindow : 0x00010014
- GetShellWindow : 0x00010080
- "FolderView" : 0x00010088
- GetAncestor(top-level window, GA_PARENT) : 0x00010014

20091127_shell_xp

■Windows 7での結果

- GetDesktopWindow : 0x00010010
- GetShellWindow : 0x000100EC
- "FolderView" : 0x000100F4
- GetAncestor(top-level window, GA_PARENT) : 0x00010010

20091127_shell_7

XPと7(&Vista?)の結果を比較すると、"FolderView"の(ツリー上の)位置が違っている。XPではシェルウィンドウ下にあるのに対し、7ではWorkerWの下についている。

[Rainmeter-dev] ウィンドウの移動処理

2009.11.22 | Rainmeter-dev // Issue/マルチモニタ関連

0 Comments

ウィンドウの移動処理についてのまとめです。
私的なまとめですので、公開されているビルドに反映されているものではありません。ご注意ください。

■対象となる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の修正については、マルチモニタ対応の記事に書きました。

以下、続きに格納。

続きを読む »

useLocalTime

2009.11.12 | PC関連 // Windows Live

2 Comments

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側の問題のようなので、面倒だけど管理画面から設定するしかないんですかね……。

[Rainmeter-dev] Aeroが有効な環境で"On Desktop"にすると、スキンウィンドウが消える問題

2009.11.05 | Rainmeter-dev // Issue/互換性問題やバグ修正

0 Comments

Aeroが有効な状態でスキンのZオーダーを"On Desktop"に変更したら、画面から消えてなくなってしまう問題についてのまとめです。
私的なまとめですので、公開されているビルドに反映されているものではありません。ご注意ください。

■更新履歴(※更新のたびに、たぶん一番上にあがってきます)
- 2009.10.30 : Desktop compositionが有効なら、"On Desktop"を使わせないようにする("Bottom"に切り替える)
- 2009.11.05 : "On Desktop"なスキンウィンドウが存在するときにDesktop compositonを無効→有効にされたら、その切り替えを検知して"Bottom"に切り替えるようにする

以下、続きに格納。

続きを読む »

[WDM] Aero Glassを有効にしてみる

2009.11.05 | Rainmeter-dev // その他

0 Comments

Aero Glass

Windows 7の試用期間が切れる前にいろいろとWDMの機能を試してみてます。
WDM関連の設定を変更したときにちゃんと追随してくれるかどうかは、実環境でチェックしないとわかりませんからね。

すりガラス効果を得るのに、最初はDwmExtendFrameIntoClientArea APIを使って、ガラス効果になってる部分をクライアント領域まで広げる方法で試してみましたが、こいつはどうやらWS_CAPTION(それともボーダー?)を持ってないと有効にならない様子。確かに最初からクライアント領域しかないRainmeterでは広げる以前の問題でした。
単純にクライアント領域に使うのはDwmEnableBlurBehindWindow APIのようで、こちらを使うとすりガラス効果を得ることができました。コードはExampleにあるもののまま。簡単ですね。ちゃんとぼやけてるし、設定に応じて合成色も変わります。

簡単だけど、もしRainmeterで実現するなら、面倒な問題がちらほらありそう(リージョンを切らないと領域が矩形のままだけど、再描画のたびにスキンに合わせて切るとなると、負荷が高くなる)。

[Rainmeter-dev] 過剰にRefreshされる問題

2009.11.04 | Rainmeter-dev // Issue/マルチモニタ関連

0 Comments

(※いろんな記事に分散してたのを統合しました)

Rainmeter0.14.1 ~ 1.0で、壁紙や視覚効果の設定を変更すると、解像度変更とは関係ないのにスキンが"Refresh"されてしまう問題についてのまとめです。
本家でのコード変更についてのコメントや、私自身の変更案、コミット予定/済みなものなどが入り混じっていますので、決して公開されているビルドに反映されているものばかりではありません。ご注意ください。

※Rainmeter 1.1ではRefresh処理が省かれたことにより、処理が軽減されてクラッシュする可能性も小さくなりました。

■更新履歴(※更新のたびに、たぶん一番上にあがってきます)
- 2009.09.xx : タイマーを使って遅延処理するように変更(メッセージループの処理を阻害しないようにする)
- 2009.11.04 : タイマー形式を使わず、CTrayWindowでメッセージ検知して全スキンウィンドウを更新するように変更して、一旦終わり

以下、続きに格納。

続きを読む »

[Rainmeter] Rainmeter 1.1 正式版がリリースされました!

2009.11.02 | Rainmeter

0 Comments

Rainmeter

11月1日にとうとうRainmeter 1.1がリリースされました。あわせて、公式サイトもリニューアルされています。
ダウンロードは公式サイトから。今回はzipでも提供されてるようです。更新内容はkenz0さんの纏められた記事をご覧いただけると参考になると思います。

Windows2000で動かすと、ちょいと動かない部分もありますが、現時点で1.0を使っている人にとっては、バージョンアップ必須!といっても過言ではないので、ぜひ入れ替えましょう。修正されたバグはそれなりに多いですから。

列挙された修正・変更・追加項目の中で、自分の担当したもので一番大きなものは、やはり最初にコミットしていただいた「画像のアスペクト比保持」ですかねぇ。過剰Refresh対応は、WM_DISPLAYCHANGEを処理するという部分は含まれましたが、処理内容自体はほぼRainy氏の手によるものだし、それ以外は何らかの小さなバグ修正がメインでした。
新機能の追加に関しては、やはり単にコードを書いて追加だけしていればいいわけはなく、しっかりとした目的や説明が必要だし、挙動の修正・変更でも同じく事前の説明が必要です。もちろん英語で。そういった部分がいろいろと堪えたここ数ヶ月でした。

自分の話はおいといて、1.1になって修正・変更・追加された中で、個人的にお気に入りなのは……

- フォントファイルの指定が自由にできるようになった
- MeterにCSSライクなStyleが適用できるようになった
- @includeで別のファイルに記述された設定内容を挿入することができるようになった
- アクション定義されたMeter上ではマウスポインタがHandポインタにかわるようになった

の4つ、ですかねぇ。特にStyleの指定は結構重複することが多いので、ものすごーく楽になります。
楽にできるといえば、やはりDynamicVariablesの存在も大きいです。使い方次第で、今までBang経由でしかできなかった操作が全て変数の変更だけで行えるようになります(お気に入りに入れてないのは、まだバグが取りきれてないからという、ただそんな理由ですw)。

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