次回目標は2000回、8/22
いろいろと忙しくなりそうなのでおそらく無理だろう
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
{
/* 失敗 */
}
実は何をやってるのかよくわかっていなかったり。
------------------------------------
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/
かなり詳細に書いてあり、これ熟読すればよさそうである。
validation ツールに jing を使うこととする。RELAX NG ホームページからリンクが張ってあるのでそこからダウンロードする。
http://fortunecat.sourceforge.net/
(別のページから古いバージョンのjingを拾ったら処理できずに何故かしばらく悩むハメになった)
あわせて本家から5.0のスキーマ(RELAX NG版)を取得、またDocBookスタールシートがバージョンアップ(1.75.0)されていたのでこれもダウンロード。
DocBook 5 の解説ページ(英語)
http://www.sagehill.net/docbookxsl/
かなり詳細に書いてあり、これ熟読すればよさそうである。
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/
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日火曜日
2009年4月23日木曜日
DocBook,FOP,ビルド
いろいろいじくった挙句の DocBook -> fo -> PDF まで一括で行うbuild.xml
-----------------------------------------------
<project name="docbooktest" basedir="." default="pdf">
<property name="LIBDIR" value="D:/DocBook"/>
<property name="DOCBOOK_DTD" value="${LIBDIR}/xml-4.5/docbookx.dtd"/>
<property name="XSLTLIBDIR" value="${LIBDIR}/xalan-j_2_7_1"/>
<property name="FOPBASEDIR" value="${LIBDIR}/fop-0.95"/>
<property name="FOPOPT" value="-c ${FOPBASEDIR}/conf/JFConf.xml"/>
<property name="DOCBOOK_PUBLIC_ID" value="-//OASIS//DTD DocBook XML V4.5//EN"/>
<property name="STYLESHEET" value="${LIBDIR}/docbook-xsl-1.74.3/fo/docbook.xsl"/>
<!-- ********************************************************** -->
<!-- **** コメントなどに日本語を使うならUTF8で保存すること **** -->
<!-- ********************************************************** -->
<property name="DOCNAME" value="sourceDocs"/>
<!--
property name="SOURCE" value="${basedir}/sourceDocs.xml"/ <= この書き方だとだめ
-->
<property name="SOURCE" value="${DOCNAME}.xml"/>
<!-- ********************************************************** -->
<taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop">
<classpath>
<fileset dir="${FOPBASEDIR}/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${FOPBASEDIR}/build/fop.jar"/>
</classpath>
</taskdef>
<!-- ********************************************************** -->
<target name="fo">
<xmlvalidate warn="false">
<xmlcatalog>
<dtd publicId="${DOCBOOK_PUBLIC_ID}" location="${DOCBOOK_DTD}"/>
</xmlcatalog>
<fileset dir="${basedir}">
<include name="${SOURCE}"/>
</fileset>
</xmlvalidate>
<xslt basedir="${basedir}"
destdir="${basedir}"
style="${STYLESHEET}"
extension=".fo"
includes="${SOURCE}">
<classpath>
<pathelement location="${XSLTLIBDIR}/xalan.jar"/>
</classpath>
<xmlcatalog>
<dtd publicId="${DOCBOOK_PUBLIC_ID}" location="${DOCBOOK_DTD}"/>
</xmlcatalog>
<outputproperty name="method" value="xml"/>
<outputproperty name="encoding" value="UTF-8"/>
<outputproperty name="indent" value="yes"/>
<!-- param name="admon.graphics" expression="1"/ -->
<!-- param name="section.autolabel" expression="1"/ -->
<!-- param name="html.stylesheet" expression="doc.css"/ -->
</xslt>
</target>
<target name="pdf" depends="fo">
<!--
<java classname="org.apache.fop.cli.Main" fork="true">
<jvmarg line="-Denv.windir=C:\WINDOWS"/>
<arg line="${FOPOPT} -fo ${DOCNAME}.fo -pdf ${DOCNAME}.pdf"/>
<classpath>
<pathelement location="${FOPBASEDIR}/build/fop.jar"/>
<pathelement location="${FOPBASEDIR}/build/fop-sandbox.jar"/>
<pathelement location="${FOPBASEDIR}/build/fop-hyph.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xml-apis-1.3.04.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xml-apis-ext-1.3.04.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xercesImpl-2.7.1.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xalan-2.7.0.jar"/>
<pathelement location="${FOPBASEDIR}/lib/serializer-2.7.0.jar"/>
<pathelement location="${FOPBASEDIR}/lib/batik-all-1.7.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xmlgraphics-commons-1.3.1.jar"/>
<pathelement location="${FOPBASEDIR}/lib/avalon-framework-4.2.0.jar"/>
<pathelement location="${FOPBASEDIR}/lib/commons-io-1.3.1.jar"/>
<pathelement location="${FOPBASEDIR}/lib/commons-logging-1.0.4.jar"/>
<pathelement location="${FOPBASEDIR}/lib/jai_imageio.jar"/>
<pathelement location="${FOPBASEDIR}/lib/fop-hyph.jar"/>
</classpath>
</java>
-->
<fop format="application/pdf"
basedir="${basedir}"
outdir="${basedir}"
messagelevel="debug"
userconfig="${FOPBASEDIR}/conf/JFConf.xml">
<fileset dir="${basedir}">
<include name="${DOCNAME}.fo"/>
</fileset>
</fop>
</target>
</project>
-----------------------------------------------
コメントアウトした部分はFOPの起動バッチを参考にした場合。この場合は fork="true" 設定をしないと駄目だった。セキュリティとかクラスローダとかの関係らしいが、よくわからない。
ant から呼び出す場合は専用のクラスが準備されているのでそちらを利用する。
-----------------------------------------------
<project name="docbooktest" basedir="." default="pdf">
<property name="LIBDIR" value="D:/DocBook"/>
<property name="DOCBOOK_DTD" value="${LIBDIR}/xml-4.5/docbookx.dtd"/>
<property name="XSLTLIBDIR" value="${LIBDIR}/xalan-j_2_7_1"/>
<property name="FOPBASEDIR" value="${LIBDIR}/fop-0.95"/>
<property name="FOPOPT" value="-c ${FOPBASEDIR}/conf/JFConf.xml"/>
<property name="DOCBOOK_PUBLIC_ID" value="-//OASIS//DTD DocBook XML V4.5//EN"/>
<property name="STYLESHEET" value="${LIBDIR}/docbook-xsl-1.74.3/fo/docbook.xsl"/>
<!-- ********************************************************** -->
<!-- **** コメントなどに日本語を使うならUTF8で保存すること **** -->
<!-- ********************************************************** -->
<property name="DOCNAME" value="sourceDocs"/>
<!--
property name="SOURCE" value="${basedir}/sourceDocs.xml"/ <= この書き方だとだめ
-->
<property name="SOURCE" value="${DOCNAME}.xml"/>
<!-- ********************************************************** -->
<taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop">
<classpath>
<fileset dir="${FOPBASEDIR}/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${FOPBASEDIR}/build/fop.jar"/>
</classpath>
</taskdef>
<!-- ********************************************************** -->
<target name="fo">
<xmlvalidate warn="false">
<xmlcatalog>
<dtd publicId="${DOCBOOK_PUBLIC_ID}" location="${DOCBOOK_DTD}"/>
</xmlcatalog>
<fileset dir="${basedir}">
<include name="${SOURCE}"/>
</fileset>
</xmlvalidate>
<xslt basedir="${basedir}"
destdir="${basedir}"
style="${STYLESHEET}"
extension=".fo"
includes="${SOURCE}">
<classpath>
<pathelement location="${XSLTLIBDIR}/xalan.jar"/>
</classpath>
<xmlcatalog>
<dtd publicId="${DOCBOOK_PUBLIC_ID}" location="${DOCBOOK_DTD}"/>
</xmlcatalog>
<outputproperty name="method" value="xml"/>
<outputproperty name="encoding" value="UTF-8"/>
<outputproperty name="indent" value="yes"/>
<!-- param name="admon.graphics" expression="1"/ -->
<!-- param name="section.autolabel" expression="1"/ -->
<!-- param name="html.stylesheet" expression="doc.css"/ -->
</xslt>
</target>
<target name="pdf" depends="fo">
<!--
<java classname="org.apache.fop.cli.Main" fork="true">
<jvmarg line="-Denv.windir=C:\WINDOWS"/>
<arg line="${FOPOPT} -fo ${DOCNAME}.fo -pdf ${DOCNAME}.pdf"/>
<classpath>
<pathelement location="${FOPBASEDIR}/build/fop.jar"/>
<pathelement location="${FOPBASEDIR}/build/fop-sandbox.jar"/>
<pathelement location="${FOPBASEDIR}/build/fop-hyph.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xml-apis-1.3.04.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xml-apis-ext-1.3.04.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xercesImpl-2.7.1.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xalan-2.7.0.jar"/>
<pathelement location="${FOPBASEDIR}/lib/serializer-2.7.0.jar"/>
<pathelement location="${FOPBASEDIR}/lib/batik-all-1.7.jar"/>
<pathelement location="${FOPBASEDIR}/lib/xmlgraphics-commons-1.3.1.jar"/>
<pathelement location="${FOPBASEDIR}/lib/avalon-framework-4.2.0.jar"/>
<pathelement location="${FOPBASEDIR}/lib/commons-io-1.3.1.jar"/>
<pathelement location="${FOPBASEDIR}/lib/commons-logging-1.0.4.jar"/>
<pathelement location="${FOPBASEDIR}/lib/jai_imageio.jar"/>
<pathelement location="${FOPBASEDIR}/lib/fop-hyph.jar"/>
</classpath>
</java>
-->
<fop format="application/pdf"
basedir="${basedir}"
outdir="${basedir}"
messagelevel="debug"
userconfig="${FOPBASEDIR}/conf/JFConf.xml">
<fileset dir="${basedir}">
<include name="${DOCNAME}.fo"/>
</fileset>
</fop>
</target>
</project>
-----------------------------------------------
コメントアウトした部分はFOPの起動バッチを参考にした場合。この場合は fork="true" 設定をしないと駄目だった。セキュリティとかクラスローダとかの関係らしいが、よくわからない。
ant から呼び出す場合は専用のクラスが準備されているのでそちらを利用する。
登録:
投稿 (Atom)