2009年5月22日金曜日

強制的に自分自身をフォアグラウンドアプリにする

http://hpcgi1.nifty.com/~kokubu/index.cgi?%B5%BB%BD%D1%A5%E1%A5%E2#i4

実は何をやってるのかよくわかっていなかったり。

------------------------------------

HWND hWnd_ = /* フォアグラウンドにするウインドウ */ ;
int fromId = GetWindowThreadProcessId(hWnd_, 0);
int toId = GetWindowThreadProcessId(GetForegroundWindow(), 0);
if (fromId == toId)
{
/* 既に自身がアクティブ ; そのままフォアグラウンド化して OK */
SetForegroundWindow(hWnd_);
}
else if (AttachThreadInput(fromId, toId, TRUE))
{
/* 違うスレッドがアクティブ ; 入力状態を共有した */
DWORD backup = 0UL;
SetActiveWindow(hWnd_);
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &backup, 0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)0, 0);
SetActiveWindow(hWnd_);
SetForegroundWindow(hWnd_);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)backup, 0);
/* 入力状態共有を解除 */
AttachThreadInput(fromId, toId, FALSE);
}
else
{
/* 失敗 */
}

2009年5月14日木曜日

DocBook 5.0

4/1 のトピックで「Xalan(Xerces)はRELAXER NGを解さない」とか書いたけど、考えてみればvalidationだけ別ツール使えばいいんだ、ということに(ようやく)気づいた。

validation ツールに jing を使うこととする。RELAX NG ホームページからリンクが張ってあるのでそこからダウンロードする。

http://fortunecat.sourceforge.net/

(別のページから古いバージョンのjingを拾ったら処理できずに何故かしばらく悩むハメになった)

あわせて本家から5.0のスキーマ(RELAX NG版)を取得、またDocBookスタールシートがバージョンアップ(1.75.0)されていたのでこれもダウンロード。


DocBook 5 の解説ページ(英語)

http://www.sagehill.net/docbookxsl/

かなり詳細に書いてあり、これ熟読すればよさそうである。

WINDOWSダンプファイル解析

最小メモリ ダンプ ファイルの解析
http://support.microsoft.com/kb/315263/ja

memory.dmp の解析
http://www.microsoft.com/downloads/details.aspx?familyid=e84d3b35-63c3-445b-810d-9fed3fdeb13f&displaylang=en
http://www.hoster.jp/tag/memorydmp/

2009年5月6日水曜日

DocBook サンプル

http://d.hatena.ne.jp/kakurasan/20070918/p1
http://d.hatena.ne.jp/kakurasan/20080528/p1

DocBook4 から 5で変わった部分

・bookinfoタグがinfoタグに(汎用化?)
・DTD 宣言の書き方が変わった?
・ID の与え方が変わった

下の二つはNameSpaceに対応したことによるものらしい。

サンプルの中のIDはエレメントごとのIDなのだろうけれど、どういう使い道があるのか?
なんとなく想像はできるけれど、具体的なモノが判らない。調査中。




2009/5/13 追記

Ver5で変化した部分に関する記述

http://yoshihiro.toda.name/docbook/docs/howto/

2009年5月5日火曜日

500回突破

臨時メンテや帰省があったとはいえ。わずか4日前倒しできただけ。

次回目標は1000回 6/13