<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[てくにかるむ]]></title><description><![CDATA[「エラーをなくすことは非常に有益で時には新しい真実や事実を作り上げるよりも勝る」
ー チャールズ・ダーウィン]]></description><link>http://multix.jp/</link><generator>Ghost 0.6</generator><lastBuildDate>Tue, 12 May 2026 21:47:07 GMT</lastBuildDate><atom:link href="http://multix.jp/tag/utility/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Apache/SSLサーバ導入手順]]></title><description><![CDATA[<p>CentOS6のApache+mod_sslでHTTPS/SSL/TLSサーバを立ち上げるシンプルな手順を示す。ここではLANに接続されたCentOSデスクトップPCでの構築練習を仮定している。前項<a href="http://multix.jp/openssl-command/">opensslコマンド例文集</a>も参照のこと。</p>

<ul class="index"></ul>

<hr>

<h4 id="apache">Apache導入</h4>

<p>必要なupdateを行った上で、Apache、mod_sslを導入する。もしopensslが入っていなければ自動的に追加される。</p>

<pre><code class="language-brush:plain">yum update -y  
yum install httpd mod_ssl  
</code></pre>

<hr>

<h4 id="web">Webサーバを起動する</h4>

<p>さっそくこのWebサーバを起動してみよう。/etc/httpd/conf/httpd.conf を編集して<code>ServerName</code>を所定の位置に追記する。既定では記入例がコメントで書かれているからその直下に<code>ServerName localhost</code>を追記して保存する。設定編集が必要なのはこれだけだ。<sup id="fnref:1"><a href="http://multix.jp/starting-apache-ssl/#fn:1" rel="footnote">1</a></sup></p>

<pre><code class="language-brush:plain gutter:true title:/etc/httpd/conf/httpd.conf">#ServerName www.example.com:80
ServerName localhost  
</code></pre>

<p>設定に間違いがないか確認してhttpdサービスを起動する。</p>

<pre><code class="language-brush:plain">[root@localhost ~]# service</code></pre>]]></description><link>http://multix.jp/starting-apache-ssl/</link><guid isPermaLink="false">e81f94f9-3965-4d97-a026-f369935a1745</guid><category><![CDATA[ユーティリティ]]></category><category><![CDATA[Linux]]></category><category><![CDATA[めもらんだむ]]></category><category><![CDATA[SSL/TLS]]></category><dc:creator><![CDATA[朝日薫]]></dc:creator><pubDate>Thu, 19 Feb 2015 09:45:00 GMT</pubDate><content:encoded><![CDATA[<p>CentOS6のApache+mod_sslでHTTPS/SSL/TLSサーバを立ち上げるシンプルな手順を示す。ここではLANに接続されたCentOSデスクトップPCでの構築練習を仮定している。前項<a href="http://multix.jp/openssl-command/">opensslコマンド例文集</a>も参照のこと。</p>

<ul class="index"></ul>

<hr>

<h4 id="apache">Apache導入</h4>

<p>必要なupdateを行った上で、Apache、mod_sslを導入する。もしopensslが入っていなければ自動的に追加される。</p>

<pre><code class="language-brush:plain">yum update -y  
yum install httpd mod_ssl  
</code></pre>

<hr>

<h4 id="web">Webサーバを起動する</h4>

<p>さっそくこのWebサーバを起動してみよう。/etc/httpd/conf/httpd.conf を編集して<code>ServerName</code>を所定の位置に追記する。既定では記入例がコメントで書かれているからその直下に<code>ServerName localhost</code>を追記して保存する。設定編集が必要なのはこれだけだ。<sup id="fnref:1"><a href="http://multix.jp/starting-apache-ssl/#fn:1" rel="footnote">1</a></sup></p>

<pre><code class="language-brush:plain gutter:true title:/etc/httpd/conf/httpd.conf">#ServerName www.example.com:80
ServerName localhost  
</code></pre>

<p>設定に間違いがないか確認してhttpdサービスを起動する。</p>

<pre><code class="language-brush:plain">[root@localhost ~]# service httpd configtest
Syntax OK  
[root@localhost ~]# service httpd start
httpd を起動中:                                            [  OK  ]  
[root@localhost ~]#
</code></pre>

<p>Linuxデスクトップ上でWebブラウザを起動し<code>http://localhost</code>を参照すると以下の画面を得ることが出来る。</p>

<p><img src="http://multix.jp/content/images/2015/02/2015-02-20-11-57-32.png" alt=""></p>

<p>自分自身（localhost）以外から参照するにはファイアウォールでHTTPポート接続を許可する必要<sup id="fnref:2"><a href="http://multix.jp/starting-apache-ssl/#fn:2" rel="footnote">2</a></sup>がある。これには<code>WWW(HTTP)</code>と<code>安全なWWW(HTTPS)</code>のふたつを許可しよう。</p>

<p><img src="http://multix.jp/content/images/2015/02/2015-02-20-11-57-21.png" alt=""></p>

<hr>

<h4 id="https">HTTPSで接続する</h4>

<p>実はこの段階で、プリインストールされた自己CA証明書を用いたHTTPSサーバがすでに起動している。ブラウザから<code>https://localhost</code>を参照すると以下【信頼できない接続】の画面を得ることが出来る。</p>

<p><img src="http://multix.jp/content/images/2015/02/2015-02-20-12-21-46.png" alt=""></p>

<p>FireFoxの場合は【危険性を理解した上で接続するには】の【例外を追加】からこの自己CA証明書を【承認】する。</p>

<p><img src="http://multix.jp/content/images/2015/02/2015-02-20-12-25-30.png" alt=""></p>

<p>すると先のHTTP接続と同じ画面が表示されるが、アドレス欄には鍵マークが付いている。これをクリックするとHTTPSで確かに通信されていることが判る。</p>

<p><img src="http://multix.jp/content/images/2015/02/2015-02-20-12-28-23.png" alt=""></p>

<hr>

<div class="footnotes"><ol><li class="footnote" id="fn:1"><p><strong>ServerName</strong>がコメントアウトされたまま起動しようとしてもエラーが出て立ち上がらない。 <a href="http://multix.jp/starting-apache-ssl/#fnref:1" title="return to article">↩</a></p></li>

<li class="footnote" id="fn:2"><p><strong>system-config-firewall-base</strong>パッケージの<strong>system-config-firewall-base-tui</strong>コマンドでファイアウォールを制御できる。 <a href="http://multix.jp/starting-apache-ssl/#fnref:2" title="return to article">↩</a></p></li></ol></div>]]></content:encoded></item><item><title><![CDATA[yumコマンド例文集]]></title><description><![CDATA[<p>yumコマンド関係の備忘録。</p>

<ul class="index"></ul>

<hr>

<h4 id="">ソフトウェアのインストール</h4>

<pre><code class="language-brush:plain">yum install PACKAGENAMES  
</code></pre>

<hr>

<h4 id="">インストール済パッケージの一覧</h4>

<pre><code class="language-brush:plain">yum list installed  
</code></pre>

<hr>

<h4 id="">レポジトリ管理外も含むインストール済パッケージの一覧</h4>

<pre><code class="language-brush:plain">rpm -qa  
</code></pre>

<hr>

<h4 id="">アップデート可能なパッケージの一覧</h4>

<pre><code class="language-brush:plain">yum list updates  
</code></pre>

<hr>

<h6 id="">ソフトウェアのアップデート</h6>

<p>引数を指定しなければ<code>yum list updates</code>で示されるパッケージすべてをアップデートしようとする。むしろ引数を指定することのほうが稀だろう。</p>

<pre><code class="language-brush:plain">yum update [PACKAGENAMES]  
</code></pre>

<hr>

<h4 id="">キャッシュ/ワークファイルのクリア</h4>

<pre><code class="language-brush:plain">yum clean all  
</code></pre>

<hr>

<h4 id="">ソフトウェア削除</h4>

<p>そのパッケージに依存している他のパッケージがある場合それも共に列挙される。<sup id="fnref:1"><a href="http://multix.jp/yum-command/#fn:1" rel="footnote">1</a></sup></p>

<pre><code class="language-brush:plain">yum remove PACKAGENAMES  
</code></pre>

<hr>

<h4 id="rpm">RPMファイルのインストール</h4>

<p>リポジトリを検索せずローカルダウンロード済のパッケージをインストールする場合に使用する。直接URLを指定してもよい。必要ならリポジトリから依存関係解決に必要なパッケージの追加導入やGPGKEYのインポートまでも面倒を見てくれる。かたや依存関係が解決できず、システムに適合しないRPMファイルについては何もしない。</p>

<pre><code class="language-brush:plain">yum localinstall PACKAGE.RPM  
</code></pre>

<hr>

<h4 id="yumrpm">yumリポジトリ管理外のRPMファイルのインストール</h4>

<p><code>yum localinstall</code></p>]]></description><link>http://multix.jp/yum-command/</link><guid isPermaLink="false">a683c4d5-dc7b-472b-a5b3-b9c14b6a7373</guid><category><![CDATA[ユーティリティ]]></category><category><![CDATA[Linux]]></category><category><![CDATA[めもらんだむ]]></category><dc:creator><![CDATA[朝日薫]]></dc:creator><pubDate>Wed, 18 Feb 2015 06:41:00 GMT</pubDate><content:encoded><![CDATA[<p>yumコマンド関係の備忘録。</p>

<ul class="index"></ul>

<hr>

<h4 id="">ソフトウェアのインストール</h4>

<pre><code class="language-brush:plain">yum install PACKAGENAMES  
</code></pre>

<hr>

<h4 id="">インストール済パッケージの一覧</h4>

<pre><code class="language-brush:plain">yum list installed  
</code></pre>

<hr>

<h4 id="">レポジトリ管理外も含むインストール済パッケージの一覧</h4>

<pre><code class="language-brush:plain">rpm -qa  
</code></pre>

<hr>

<h4 id="">アップデート可能なパッケージの一覧</h4>

<pre><code class="language-brush:plain">yum list updates  
</code></pre>

<hr>

<h6 id="">ソフトウェアのアップデート</h6>

<p>引数を指定しなければ<code>yum list updates</code>で示されるパッケージすべてをアップデートしようとする。むしろ引数を指定することのほうが稀だろう。</p>

<pre><code class="language-brush:plain">yum update [PACKAGENAMES]  
</code></pre>

<hr>

<h4 id="">キャッシュ/ワークファイルのクリア</h4>

<pre><code class="language-brush:plain">yum clean all  
</code></pre>

<hr>

<h4 id="">ソフトウェア削除</h4>

<p>そのパッケージに依存している他のパッケージがある場合それも共に列挙される。<sup id="fnref:1"><a href="http://multix.jp/yum-command/#fn:1" rel="footnote">1</a></sup></p>

<pre><code class="language-brush:plain">yum remove PACKAGENAMES  
</code></pre>

<hr>

<h4 id="rpm">RPMファイルのインストール</h4>

<p>リポジトリを検索せずローカルダウンロード済のパッケージをインストールする場合に使用する。直接URLを指定してもよい。必要ならリポジトリから依存関係解決に必要なパッケージの追加導入やGPGKEYのインポートまでも面倒を見てくれる。かたや依存関係が解決できず、システムに適合しないRPMファイルについては何もしない。</p>

<pre><code class="language-brush:plain">yum localinstall PACKAGE.RPM  
</code></pre>

<hr>

<h4 id="yumrpm">yumリポジトリ管理外のRPMファイルのインストール</h4>

<p><code>yum localinstall</code>と異なり依存関係の解決は行われないし、GPGKEYが必要な場合でも別にインポートしなければならない。依存性の欠如はどんなファイルが不足しているかだけを示し、リポジトリを参照する訳ではないのでパッケージ名までは列挙しない。</p>

<pre><code class="language-brush:plain">rpm --import GPGKEY-FILE_OR_URL  
rpm -ivh PACKAGE.RPM-FILE_OR_URL  
</code></pre>

<hr>

<h4 id="">ある特定ファイルを含むパッケージ名の検索</h4>

<p>FILENAMEはグロブで指定することができる。既にインストール済の場合はinstalled、そうでなければ見つかったリポジトリ名も示す。</p>

<pre><code class="language-brush:plain">yum provides FILENAME  
yum provides */httpd --disablerepo=base  
</code></pre>

<hr>

<h4 id="">パッケージに含まれるファイルとディレクトリの一覧</h4>

<p><code>yum-utils</code>パッケージに含まれる<code>repoquery</code>コマンドはパッケージに含まれるファイルやディレクトリの一覧を、パッケージをダウンロードせずに取得できる。</p>

<pre><code class="language-brush:plain">repoquery --list PACKAGENAME  
</code></pre>

<hr>

<h4 id="chroot">クリーンなchroot環境を作る</h4>

<p>最初のyum実行ではrpm環境がまだchroot内にないため<code>--releasever</code>を明示することでエラーを避ける。Coreグループインストール完了後以降ではその必要はない。最後に<code>clean all</code>でyumのワークファイルを消して容量を節約する。</p>

<pre><code class="language-brush:plain">rm -fr /tmp/chroot  
yum --installroot=/tmp/chroot --releasever=6.6 groupinstall Core -y  
yum --installroot=/tmp/chroot update -y  
:
yum --installroot=/tmp/chroot clean all

chroot /tmp/chroot  
</code></pre>

<hr>

<h4 id="centos6">古いカーネルを削除する(CentOS6)</h4>

<p>CentOS5まではバージョン番号も省略せずに指定しないと現在実行中のカーネルまでもが削除できてしまった<sup id="fnref:2"><a href="http://multix.jp/yum-command/#fn:2" rel="footnote">2</a></sup>が、CentOS6では正しくプロテクトされるようになったので、逆に<code>kernel</code>とだけ指定することで現在実行中のカーネル以外を一括削除<sup id="fnref:3"><a href="http://multix.jp/yum-command/#fn:3" rel="footnote">3</a></sup>できるようになった。</p>

<pre><code>yum remove kernel  
</code></pre>

<p>カーネルを複数世代保持しておきたい場合は<code>yum</code>ではなく<code>package-cleanup</code>コマンドを使用するとよい。</p>

<pre><code class="language-brush:plain">package-cleanup --oldkernels --count=2  
</code></pre>

<hr>

<div class="footnotes"><ol><li class="footnote" id="fn:1"><p>例えばpostfixをインストールする前にsendmailを、rsyslogをインストールする前にsyslogを削除しようとするとシステム崩壊するほど数のパッケージが同時に削除されようとする。そんなこともあり誤操作を避けるためremove時は<strong>-y</strong>オプションを付けるべきではない。 <a href="http://multix.jp/yum-command/#fnref:1" title="return to article">↩</a></p></li>

<li class="footnote" id="fn:2"><p>もちろん気付かずにそのまま再起動してしまうと素晴らしい顛末が待っている。 <a href="http://multix.jp/yum-command/#fnref:2" title="return to article">↩</a></p></li>

<li class="footnote" id="fn:3"><p>このためupdate直後にremoveするとupdate前にロールバックする動作になる。ゆえに意図通りにremoveするには再起動＆正常起動確認の後で行わなければならない。 <a href="http://multix.jp/yum-command/#fnref:3" title="return to article">↩</a></p></li></ol></div>]]></content:encoded></item><item><title><![CDATA[CentOSの追加リポジトリ]]></title><description><![CDATA[<p>標準以外でよく使うリポジトリのメモ</p>

<ul class="index"></ul>

<hr>

<h4 id="epel">EPEL</h4>

<p><a href="http://fedoraproject.org/wiki/EPEL">Extra Packages for Enterprise Linux</a></p>

<p>FedoraリポジトリをソースにエンタープライズLinux向けに提供されているアドオンパッケージ群。RHELと互換性のあるスピンオフディストリビューション（CentOSやScientific Linux）で利用可能。Fedoraプロジェクトによって提供されている。Fedoraリポジトリより保守的なため提供されていないパッケージもある。</p>

<ul>
<li><a href="http://download.fedoraproject.org/pub/epel/7/x86_64/repoview/epel-release.html">EL7 epel-release (RPM Download page)</a></li>
<li><a href="http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html">EL6 epel-release (RPM Download page)</a></li>
<li><a href="http://download.fedoraproject.org/pub/epel/5/i386/repoview/epel-release.html">EL5 epel-release (RPM Download page)</a></li>
</ul>

<p>CentOSの場合は上記のパッケージがextrasリポジトリに含まれているため以下を実行するだけで利用開始可能となる。</p>

<pre><code class="language-brush:plain">yum install epel-release  
</code></pre>

<p>デフォルトでenablerepoであるから、必要ならdisableにしておこう。</p>

<pre><code class="language-brush:plain gutter:true">[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch  
#baseurl=http://download.fedoraproject.org/</code></pre>]]></description><link>http://multix.jp/centos-addon-repos/</link><guid isPermaLink="false">f56d73c3-8d09-4e41-9cb8-2ad6b97b15c5</guid><category><![CDATA[ユーティリティ]]></category><category><![CDATA[Linux]]></category><category><![CDATA[めもらんだむ]]></category><dc:creator><![CDATA[朝日薫]]></dc:creator><pubDate>Tue, 17 Feb 2015 09:23:00 GMT</pubDate><content:encoded><![CDATA[<p>標準以外でよく使うリポジトリのメモ</p>

<ul class="index"></ul>

<hr>

<h4 id="epel">EPEL</h4>

<p><a href="http://fedoraproject.org/wiki/EPEL">Extra Packages for Enterprise Linux</a></p>

<p>FedoraリポジトリをソースにエンタープライズLinux向けに提供されているアドオンパッケージ群。RHELと互換性のあるスピンオフディストリビューション（CentOSやScientific Linux）で利用可能。Fedoraプロジェクトによって提供されている。Fedoraリポジトリより保守的なため提供されていないパッケージもある。</p>

<ul>
<li><a href="http://download.fedoraproject.org/pub/epel/7/x86_64/repoview/epel-release.html">EL7 epel-release (RPM Download page)</a></li>
<li><a href="http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html">EL6 epel-release (RPM Download page)</a></li>
<li><a href="http://download.fedoraproject.org/pub/epel/5/i386/repoview/epel-release.html">EL5 epel-release (RPM Download page)</a></li>
</ul>

<p>CentOSの場合は上記のパッケージがextrasリポジトリに含まれているため以下を実行するだけで利用開始可能となる。</p>

<pre><code class="language-brush:plain">yum install epel-release  
</code></pre>

<p>デフォルトでenablerepoであるから、必要ならdisableにしておこう。</p>

<pre><code class="language-brush:plain gutter:true">[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch  
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&amp;arch=$basearch  
failovermethod=priority  
enabled=0  
gpgcheck=1  
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6  
</code></pre>

<p>enabled=0とするとyumコマンドに<code>--enablerepo=REPONAME</code>オプションが必要となる。付けなければこのリポジトリを参照しない。インストール時だけでなくアップデート時にも必要とする。<sup id="fnref:1"><a href="http://multix.jp/centos-addon-repos/#fn:1" rel="footnote">1</a></sup></p>

<pre><code class="language-brush:plain">yum install PACKAGENAME --enablerepo=epel  
</code></pre>

<hr>

<h4 id="remi">remi</h4>

<p><a href="http://rpms.famillecollet.com/">Les RPM de Remi - Repository</a></p>

<p>Remi Collet がメンテナンスしているリポジトリ。標準リポジトリには含まれていない最新バージョンのパッケージを多数提供しているが、そのぶん標準側アップデート時に不整合を起こしやすいため長期運用時はピーキーになりがちである。</p>

<ul>
<li><a href="http://rpms.famillecollet.com/enterprise/remi-release-7.rpm">Enterprise Linux 7 (RPM Direct link)</a></li>
<li><a href="http://rpms.famillecollet.com/enterprise/remi-release-6.rpm">Enterprise Linux 6 (RPM Direct link)</a></li>
<li><a href="http://rpms.famillecollet.com/enterprise/remi-release-5.rpm">Enterprise Linux 5 (RPM Direct link)</a></li>
</ul>

<pre><code class="language-brush:plain">yum localinstall http://rpms.famillecollet.com/enterprise/remi-release-6.rpm  
</code></pre>

<pre><code class="language-brush:plain">yum install PACKAGENAME --enablerepo=remi  
</code></pre>

<hr>

<h4 id="ius">ius</h4>

<p><a href="http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/repoview/">ius community</a></p>

<p>Python2.7や3.3, PHP5.5、Python3.3、Git 1.8 などの最新リリースを提供している。</p>

<pre><code class="language-brush:plain">yum localinstall http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-13.ius.centos6.noarch.rpm  
</code></pre>

<pre><code class="language-brush:plain">yum install python3.3 --enablerepo=ius  
</code></pre>

<hr>

<h4 id="rpmforge">RPMforge</h4>

<p><a href="http://repoforge.org/use/">RepoForge</a></p>

<p>Fedora系用アドオンコレクション。主にデスクトップ向けのパッケージが多いがサーバでも使えるものは多い。サーバ上で各種メディアファイルの編集加工等を扱う場合にはここからツール類を入手することが多い。とはいえremi同様標準リポジトリとバージョン管理が同期しているわけではないのでコンフリクトも起こしやすい。最近RepoForgeに名を改めたようだ。 <br>
導入は上記サイトから適切なバージョンとアーキテクチャのRPMファイルを示すURLを求めて<code>yum localinstall</code>で行う。</p>

<pre><code class="language-brush:plain">yum localinstall http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm  
</code></pre>

<hr>

<h4 id="wandisco">WANdisco</h4>

<p><a href="http://www.wandisco.com/jp">WANdisco</a></p>

<p>最新のsubversionを入手できる。repo.confパッケージは配布していないようなので以下のように自力で記述する必要がある。</p>

<pre><code class="language-brush:plain gutter:true">[wandisco-svn]
name=WANDisco Repository - snv-1.8 centos6  
baseurl=http://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/  
enabled=0  
gpgcheck=1  
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-WANdisco  
</code></pre>

<pre><code class="language-brush:plain">rpm --import http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco  
</code></pre>

<pre><code class="language-brush:plain">yum install subversion --enablerepo=wandisco-svn --disablerepo=base,updates,epel  
</code></pre>

<hr>

<div class="footnotes"><ol><li class="footnote" id="fn:1"><p>オプションの記述位置はyumコマンドの直後でも行末でもどちらでもよい。このポストではサンプルコードが横スクロールすることから行末にまとめて記述しているが実際の運用ではヒストリ編集＆連続実行の容易さもあり最初に書くほうが多数派だろう。 <a href="http://multix.jp/centos-addon-repos/#fnref:1" title="return to article">↩</a></p></li></ol></div>]]></content:encoded></item><item><title><![CDATA[WindowsのヘルプファイルをHTML化する]]></title><description><![CDATA[<p>UWSC添付ヘルプが今時のWindowsでは普通には開けず不便極まりないので自分が使うために CHM Decoder でHTMLに変換してみた。内容には全く手を加えていない。無論文書著作権は先方にある。元はフリーソフトウェアの添付物ではあるがその点にはご留意いただきたい。</p>

<p><a href="http://multix.jp/uwsc.html" target="_blank">UWSCヘルプファイル(HTML版) v5.2.0 2015/10/18版 (Shift_JIS)</a></p>

<hr>

<h4 id="uwsc">UWSC</h4>

<p><a href="http://www.uwsc.info">UWSC公式サイト</a></p>

<blockquote>
  <p>あなたが行っている定型作業は<br>
  時間の無駄だとは思いませんか<br>
  退屈だとは感じませんか。</p>
</blockquote>

<ul>
<li>マウスとキーボード入力を記録して再生する事ができます。 （スクリプト形式ですので自由に編集する事ができます）</li>
<li>強力なスクリプト言語によりアプリの操作ができます。 （COMオブジェクト、DLLの利用も可能です）</li>
<li>スケジュール機能により指定時間や指定ウィンドウが現れた時などの指定ができます。</li>
</ul>

<p>以上、公式サイトからの引用。</p>

<p>コマンドプロンプトでのバッチ処理やPowerShell、CygwinからのCLI操作で事が済めばそれに越したことはないが、WindowsはやはりGUI主体のOSなので、CLI未対応アプリのほうが圧倒的多数だったりする。それでも定型作業のネタは尽きないし、どうにかしてGUI操作をバッチ処理できればルーチンワークのミス率が大幅に減るんじゃないかという懸念は常に付きまとう。UWSCはそんな時に役立つ強力なツールになりうる。</p>

<p>マウスやキーボード入力の操作過程をレコーディングして簡単に再生操作することもできるが、その操作内容を専用スクリプト言語で書き出せるので、これを編集加工したり、あるいはゼロから緻密にスクリプトをコーディングするほうが主だろう。</p>

<p>その専用スクリプト言語は、言語仕様がBASIC風である。例えばあるBMP画像とデスクトップ画面とを比較して見つかったか否かの真偽値と、見つかった場合の座標を得るにはこんなコードを書く。</p>

<pre><code class="language-brush:plain">// 画像チェック

If ChkBmp("検査画像") Then</code></pre>]]></description><link>http://multix.jp/windows-helpfile-to-html/</link><guid isPermaLink="false">18be7c21-2eab-4687-9901-f936d1e3c3c1</guid><category><![CDATA[ユーティリティ]]></category><category><![CDATA[Windows]]></category><dc:creator><![CDATA[朝日薫]]></dc:creator><pubDate>Tue, 17 Feb 2015 06:41:00 GMT</pubDate><content:encoded><![CDATA[<p>UWSC添付ヘルプが今時のWindowsでは普通には開けず不便極まりないので自分が使うために CHM Decoder でHTMLに変換してみた。内容には全く手を加えていない。無論文書著作権は先方にある。元はフリーソフトウェアの添付物ではあるがその点にはご留意いただきたい。</p>

<p><a href="http://multix.jp/uwsc.html" target="_blank">UWSCヘルプファイル(HTML版) v5.2.0 2015/10/18版 (Shift_JIS)</a></p>

<hr>

<h4 id="uwsc">UWSC</h4>

<p><a href="http://www.uwsc.info">UWSC公式サイト</a></p>

<blockquote>
  <p>あなたが行っている定型作業は<br>
  時間の無駄だとは思いませんか<br>
  退屈だとは感じませんか。</p>
</blockquote>

<ul>
<li>マウスとキーボード入力を記録して再生する事ができます。 （スクリプト形式ですので自由に編集する事ができます）</li>
<li>強力なスクリプト言語によりアプリの操作ができます。 （COMオブジェクト、DLLの利用も可能です）</li>
<li>スケジュール機能により指定時間や指定ウィンドウが現れた時などの指定ができます。</li>
</ul>

<p>以上、公式サイトからの引用。</p>

<p>コマンドプロンプトでのバッチ処理やPowerShell、CygwinからのCLI操作で事が済めばそれに越したことはないが、WindowsはやはりGUI主体のOSなので、CLI未対応アプリのほうが圧倒的多数だったりする。それでも定型作業のネタは尽きないし、どうにかしてGUI操作をバッチ処理できればルーチンワークのミス率が大幅に減るんじゃないかという懸念は常に付きまとう。UWSCはそんな時に役立つ強力なツールになりうる。</p>

<p>マウスやキーボード入力の操作過程をレコーディングして簡単に再生操作することもできるが、その操作内容を専用スクリプト言語で書き出せるので、これを編集加工したり、あるいはゼロから緻密にスクリプトをコーディングするほうが主だろう。</p>

<p>その専用スクリプト言語は、言語仕様がBASIC風である。例えばあるBMP画像とデスクトップ画面とを比較して見つかったか否かの真偽値と、見つかった場合の座標を得るにはこんなコードを書く。</p>

<pre><code class="language-brush:plain">// 画像チェック

If ChkBmp("検査画像") Then  
    // 成功すると特殊グローバル変数に取得した座標が入っている
    Print "X=" + G_IMG_X + " Y=" + G_IMG_Y
Else  
    Print "見つからなかった"
EndIf

Function ChkBmp (BmpName)  
    // Result はExitでコール元に返される特殊グローバル変数
    Result = Chkimg("Resources\" + BmpName + ".bmp")
    Exit
Fend  
</code></pre>

<p>この画像比較・座標取得という機能が万能すぎて目眩がする。「GUI OSの自動操作」というジャンルでは OSX 標準装備の Automator + Apple Script がよく知られるところだが、残念ながらこんな機能があるかまでは過分にして知らない。もしあったら多分みんなもっと積極的に使っていて一般化しているんじゃないかと思える。</p>

<p>そんな強力な UWSC の泣き所はやはりこの言語仕様だろう。組込関数も独特なものが多い。添付のヘルプファイルや世間に流通するサンプルコードは欠かせない資料だ。ところがこのヘルプファイルは古き良き .chm 形式である。これは Windows Vista 以降ではセキュリティ上の問題からもはや非推奨になっているフォーマットで、ヘルプビューワもOS標準からは取り除かれている。よって.chmファイルを開いて閲覧するには別途ダウンロードしてインストールするなり、Windows SDKを持ってくるなりしなければならない。それが1台だけならまだしも何台ものPCに入れなきゃならんとなると全くもってゲンナリしてくるし、まして普段使いの PCが Macなのだからそっちの広大なデスクトップでドキュメント参照しながらコーディングして実機でトライ＆デバッグするほうが生産的というものだ。</p>

<hr>

<h4 id="chmdecoder">CHM Decoder</h4>

<p><img src="http://multix.jp/content/images/2015/02/2015-02-18-16-15-52.png" alt=""></p>

<p><a href="http://gridinsoft.com/chm.php">http://gridinsoft.com/chm.php</a> <sup id="fnref:1"><a href="http://multix.jp/windows-helpfile-to-html/#fn:1" rel="footnote">1</a></sup></p>

<p>CHM Decoder は .chm ファイルをHTMLファイルセットに変換してくれる Windowsアプリである。使い方はごく簡単で、アプリを起動して .chm ファイルを読み込ませ、出力フォルダを指定して結果を書き出すだけだ。.chm ファイルの日本語文字コードは Shift_JIS であるが特に文字化けすることもなくそのまま書き出される。出力結果がどんな様子になるかは実際に UWSCヘルプファイルを変換した先のリンクを見て頂きたい。ヘルプビューワにあった検索機能や印刷機能は損なわれるがHTML化してブラウザ上で閲覧・検索できるメリットのほうがたいていは上回るので、それほどのデメリットでもないだろう。</p>

<hr>

<div class="footnotes"><ol><li class="footnote" id="fn:1"><p>Local download <a href="https://secure.multix.jp/download/chmdecoder-2.2.zip">chmdecoder.exe ver2.2 (13.04.2014)</a> <a href="http://multix.jp/windows-helpfile-to-html/#fnref:1" title="return to article">↩</a></p></li></ol></div>]]></content:encoded></item></channel></rss>