IfSendTo のインストーラを WSH で作ってみようと思い、少し調べてみた。
とあるソフトがバージョンアップしていたので、インストールしたところ、再起動を促された。MoveFileEx() によって再起動時に更新するファイルが書かれている場所である HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations を見たところ、mfc42.dll を更新しようとしていた。mfc42.dll は、WFP (Windows File Protection) で保護されているファイルだったはず。再起動してみたところ、元のファイル (6.0.9586.0) に戻ってしまっていた。
ちなみにこのソフトは、Win2k には対応していないことになっているが、Win2k で使っている。インストーラは、VS6 SP6 付属の mfc42.dll (6.0.9782.0) に更新しようとしていたようだが、そもそも VS6 SP6 そのものをインストールした場合でも、mfc42.dll は更新されない。Win2k SP4 の mfc42.dll は最新ではないということを、MS は一体どう考えているのだろうか。(WinXP だと mfc42.dll のバージョンはどうなってるんだっけ?)
I-O DATA キャプチャボードに付属している TV ソフトである mAgicTV には、エクスポートという機能がある。録画後のファイルを手動あるいは自動で、3GPP2 などの別の形式に変換したり、iPod や PSP に転送するといったことができるようになっている。使う人にとっては便利な機能かもしれないが、エクスポート方法が極めて限られているという問題がある。自分の場合は、CM カットのため MPEGCraft へエクスポートできるようにしたいと思っていたのだが、任意のプログラムにエクスポートする方法は用意されていないのである。
任意のプログラムにエクスポートできるようにするプラグインか何かは公開されていないものかと思い、少し探してみたが見当たらなかったので、解析してみることにした。
各エクスポート機能は、mAgicTV のディレクトリにある IfXxxx.dll といった DLL で実現されているようである。調べてみたところ、これらの DLL の呼び出し方法はそれほど難しくはなさそうである。
適当に DLL を作ってみたら、手動でエクスポートを実行して、MPEG ファイルの場所が渡されることは確認できた。しかし、録画終了時の自動エクスポートがうまく動かないようだ。
ここで 2ch の某スレでそのようなプラグインがないか聞いてみたところ、mAgic Exporter というものがあることを教えてもらった。探し方が足りなかったようだ。自動エクスポートが動かない件は「mAgic Exporterのバグ」と同じ原因だったようで、mAgicTV が知っているプラグインでなければ自動エクスポートは使えないようである。
同種のものが既にあったとはいえ、せっかく自分で作り始めたものをそのままにしてしまうのはもったいないので、ちゃんと完成させることにした。名称は IfSendTo にすることにした。IfSendTo の mAgic Exporter に対する利点は、手動エクスポート時の複数ファイルのエクスポートに対応している点と、ファイルサイズがやたら小さいこと(mexport.dll 124KB に対して、IfSendTo.dll わずか 6.5KB)、実行ファイルのフルパスをファイルを開くダイアログで指定できることである。逆に欠点は、エクスポート名の偽装に対応していないため、自動エクスポートが使えない点である。
IfSendTo を公開するかどうかは未定。
CF-R6M の詳細が公開されていた。SD カードスロットも SDHC に対応したりと、細かい部分もいろいろ改良されているようだ。
そういえば、最近の Let's note の SD スロットでは MMC が使えなくなったようだ。会社で使っている CF-W5K に MMC を挿したところ、認識しなかったので気付いた。CF-R2C では問題なく使えていたはず。32MB の MMC が何枚か余っているのだが・・・。
CF-R6 買おうかな? 個人向けは OS が Windows Vista Business だけというのがあれだが。正直 Vista はまだ早いと思っている。
Auslogics Disk Defrag 1.1.1.195 を使ってみた。Windows 標準の Defrag とは違って、空き領域のデフラグは行わず、ファイルのデフラグだけを行うので、処理が速い。
実行画面で日本語ファイル名が化けるのと、実行結果のレポートをブラウザで開くと文字コードが iso-8859-1 に固定されているために日本語ファイル名が化けるのが気になったので、対策してみることにした。
まず、Resource Hacker で diskdefrag.exe を開いて、RCData\TDEFRAGMAINFORM\0 を表示、
object eLastFile: TLabel : Font.Charset = RUSSIAN_CHARSET : Font.Height = -11 Font.Name = 'Verdana' : end
という部分を、
object eLastFile: TLabel : Font.Charset = ANSI_CHARSET : Font.Height = -12 Font.Name = 'MS UI Gothic' : end
に書き換えて、スクリプトをコンパイルしてファイルを保存。
次に、バイナリエディタで Lang\en.lng を開いて、
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
という部分を、
<meta http-equiv="Content-Type" content="text/html">
に書き換え。
以上で、日本語ファイル名が化けなくなった。
それさえもおそらくは平穏な日々: 日本語化で日本語化パッチが公開されているのを見つけたが、レポートの文字化けは修正されていないようだ。
Word 2003 を使っていたら、意味不明なメッセージが。
「日本語でおk」と言いたい。
「ツール」→「オプション」→「保存」タブ → 「言語データを埋め込む」のチェックを外せば出なくなるらしい。かといって、チェックが入っていたら必ず出るわけでもないのが謎。
試しにサンプルを DMD でコンパイルしてみた。何もしないプログラムでも、実行ファイルのサイズは 68KB。ちょっとでかい。ちなみに、同じ Digital Mars の DMC で何もしない C プログラムをコンパイルしたところ、サイズは 30KB だった。こちらもちょっと大きめである。
K2Editor で色分け表示できるようにしてみた。(d_k2e.lzh) bregonig が必要である。
先月の spam メールの集計結果。着信拒否にならなかった spam が少なくとも 1400通。そのうち、@nifty の迷惑メールフォルダーでも Spam Mail Killer でも spam として認識できなかったものが 8通(0.6%)。@nifty の迷惑メールフォルダーの学習をリセットしたが相変わらず馬鹿だ。