Paint.NETとTWAIN

| コメント(0) | トラックバック(0)
先月末、COMサーバーについて書きました。これが64ビットWindowsにおけるTWAINの話だったのですが、形になりました。

TWAINLocalServer.zip

Paint.NETでTWAINを使うものとして、効果プラグインのTwainableというのが既にありますが、64ビット環境では動作しませんでした。またクリップボードに入れるところまでしか行なわないらしいので、もう一手間かかりました。

こちらはファイルタイプのプラグインとして作ってあり、拡張子pdtwainを開くとTWAINから読み込みます。またアウトプロセスCOMサーバー経由なので、64ビット32ビット問わず動作します。スキャナの選択は通知領域から行ないます。

pdtwain.dllとTWAINLocalServerLib.dllをPaint.NETのFileTypesフォルダにコピーしてください。その上で、TWAINLocalServer.exeを適当な場所にコピーし、
TWAINLocalServer.exe -RegServer
として登録してください(管理者権限が必要)。登録解除は
TWAINLocalServer.exe -UnregServer
です(同じく)。

ベースとして、らんゆうじろう氏のCTWAINManagerを使っています。スキャンのウィンドウとスキャナ選択とを自動で切り替えるため、処理が完了してから行なえるようPostMessageをいくつか追加しました。

...というのが、そもそもTWAINが64ビット非対応というところから始まったものでした。公式TWAINは対応を果たしているのですが、Windows同梱の古い仕様のものは未対応なのです。

AnyCPUマネージドアプリであるPaint.NETから呼ばれるTwainableは、64ビット環境ではアンマネージドDLLとして64ビット版を要求するのですが、TWAINのDLL本体はWindowsフォルダの32ビット版しか存在せず、読もうとして落ちていたわけです。

そこでCOMサーバー。しかし肝心のデータの受け渡しをどうしたものかと試行錯誤をし、結局SAFEARRAYにまで手を付けました。ファイルマッピングでも良いのですが、不慣れなマネージド側の処理が楽になるので、マネージド配列として扱えるSAFEARRAYは好都合だったのです。

ちなみにタスクメモリは32/64の垣根を越えることができませんでした。ハンドルではなく直接アドレスを扱うAPIだからでしょうか。タスクメモリを使わなければデュアルインターフェース/オートメーションが使えるので、これはこれで悪い話ではありませんが。

まだエラー対策が不充分なのと、TWAINのウィンドウが背後に隠れる場合があるので、もう少し改良してからホームページ側で公開します。

iOS 5でメール着信音

| コメント(0) | トラックバック(0)
リマインダーの必要性を感じ、週末を待たずにiOS 5に上げました。

全体的に動作が軽くなった気はします。また、私がMW600を購入したiOS4.3.xの頃は封印されていたようですが、一時期対応していたはずのAVRCP(1.3以降)が再び動作したようで、曲名がばっちり表示されました。

お待ちかね、メール(等)の着信音は拡張子m4rのAACでした。ですので最大30秒制限はあるのかもしれませんが、さすがにメール着信音は数秒で済むでしょう。

これで混雑中で着信しても自分のメールだとわかるようになります。

Ctrl + 1

| コメント(0) | トラックバック(0)
MacBookのBootCamp環境でCtrl+1が利かないなと思っていたのですが、Ctrl無しの全角/半角キーが発行されているのですね。

CtrlがONの状態で、
1 (MAKE)→Ctrl (BRAEK) + 全角/半角 (MAKE)
1 (BREAK)→全角/半角 (BREAK) + Ctrl (MAKE)
が発行されるようです。

ちなみに両方ONの状態でCtrlを先に離すと、
全角/半角 (BREAK) + 1 (MAKE)
のようですね。

USBデバイスに入っているLowerFilterのKeyMagic.sysが行なっていると思われます。。

私にはHIDキーボードUpperFilterの知識が少しあるだけなので、対抗するには全角/半角を検出してCtrl+1を仕込んでやるしかありません。
上記2ストロークが同時に取れれば1に戻すだけで済みますが、果たしてXP/Vista/7で共通の挙動になるかどうか。

ちなみにKeyMagic.sysはUSBのVID/PID判別をしているようなので、仮想環境で自在にテストというわけにもいきません。さてどうしたものか...。

R.I.P. Steve Jobs

| コメント(0) | トラックバック(0)
現職で仕事としてMacBookを使い始めるまで、その後個人でiPodやiPhoneを使い始めるまで、Apple文化を傍目にしか見ていなかったので、今でいうClassic Macの時代の話は直接の経験がほとんどありません。

ですのでMac OS X以降しかわかりませんが、UIへの執念は常に意識させられてきました。オシャレさという外側のAppleにはあまり関心がありませんでしたが、内側のAppleが目指している道は、人間のためのUIの、最先端を示す一つの形であり続けています。

AppleのUIが見た目だけでなく時間軸も織り込んだものだと教えられたのは、2008年のWWDCに参加した時でした。まだCocoaの知識も皆無でしたが、この頃からApple文化というものを意識するようになりました。

そのAppleの創業者の一人、今では魔法使いウォズを差し置いて最大のカリスマとして君臨してきたスティーブ・ジョブズ氏が亡くなりました。

いくつかのニュースサイトが少し前から業績を振り返る記事を書いていましたが、縁起でもないと思いつつも、近いのかなと心の片隅で感じていました。

メディア露出に積極的なあのジョブズ氏が、引退の時に会見の一つも開か(け)なかったというのが、全てを表していたでしょうか。壇上でティム・クック氏と握手でもして、世代交代のセレモニーでも開くのが想像に難くなかったのですが。

CEOを引退してひと月半、享年56。早すぎますが、常人に万倍する業績を挙げたと確信します。願わくばAppleが今後もあんなAppleであり続けますように。

今さらのもの

| コメント(0) | トラックバック(0)
GadgetScrew.pngWindows Vistaのサイドバーガジェットが左にずれていくのを防止するツールを公開しました。
GadgetScrew Ver.0.7

Vistaのサポートが来年春に切れるというのに、あまりにも今さらですが。BusinessとEnterpriseはまだ使うでしょうから、有用でないこともないでしょう。

ガジェットの追加・削除にも追随できるようにしてあります。

名前の元ネタは「モンティ・パイソン」でジョールが法廷に立つシーンです。

TS Demux for D-VHS

| コメント(0) | トラックバック(0)
dvhsdemux.png何となく動作するものができました。ホームページの方で公開しています。
DVHSDemuxer Ver.0.2

Code Projectを参考に、リストビューへの進捗表示を組み込んであります。

するとカスタムドローを使うので、ついでにパス表示にPathCompactPath APIを使うことができました。

なおtsdemuxerベースなのでGPLになっています。
企むことがあってCOMの学習中。

既に廃れつつあって参考書が少ない中、いきなりアウトプロセスのサーバーに挑戦です。

32ビットしか提供されていないアンマネージドDLLを、64ビットのマネージドアプリから使う必要があり、32/64相互運用はアウトプロセスCOM経由が一つの方法だと目にしたもので。

CodeGuruにC++で記述したアウトプロセスサーバーのサンプルがありました。Windows SDKのDCOMサンプル"Simple"よりわかりやすいと思います。

またMSDNにC#クライアントの解説がありました。

IDLファイルがあればタイプライブラリのTLBファイルが作られるので、tlbimpしてアセンブリファイルを作り、参照設定から「参照の追加」してやれば良いとわかりました。

コードはこうなりました。

namespace CSClient
{
    class Program
    {
        static void Main(string[] args)
        {
            Server.MiniDcom d = new Server.MiniDcom();
            Server.IDouble id = (Server.IDouble)d;
            int r0, r1;
            r0 = 10;
            r1 = id.Double(r0);
            Console.WriteLine(r0 + "->" + r1);
        }
    }
}

夢の国

| コメント(0) | トラックバック(0)
夢の国といったらディズニーランドを連想するのが普通でしょうが、ラヴクラフト的にはランドルフ・カーターらが活躍する舞台です。

その最長編「未知なるカダスに夢を求めて」に登場する夜鬼(ナイトゴーント)やシャンタク鳥が「這い寄れニャル子さん」に出ていますが、実は私、読んでいませんでした。

というか食屍鬼としてのピックマンもこっちなのですね。「ピックマンのモデル」の頃はまだ人間でしたし、ガグも出てくるこちらでないとピックランドは理解できません。

どうも最初にクトゥルーとして一連の作品に興味を持ったため、青心社「クトゥルー」に当時(11巻まで刊行)未収録だったので見逃したようなのです。その後13巻に収録されたのですね。

最近になって、同時期に買っていながらあまり読んでいなかった創元推理文庫「ラヴクラフト全集」で読んで感動したところ。

ランドルフ・カーターといえば、ラヴクラフトの分身と言われる人物の末路が「銀の鍵の門を超えて」のあれというのは、割り切っているのか破滅的なのか。

ハッピーエンドなんぞあり得ない世界を描く人ですから、宇宙的な知識を地球に持って帰るなど夢の世界以外ではあり得ず、妥当な結末ではありますが。

夢の国には「先輩」と呼べる人もいましたから、カーターも今はズカウバから離れヤディスから戻り、夢の国で暮らしているのかもしれません。

這いニャル8巻は来月発売です。残業が続くと通勤電車はラノベでも読まないとやっていられません。待ち遠しいです。

縦・横・高さ

| コメント(0) | トラックバック(0)
スピーカーのためだけに選んだLCD-40MDR1の3D機能を試してみようと、ラプンツェル3Dを借りてみました。

...正直なところ、感動というほどではありませんでした。ベゼルの内側に箱庭が広がっているだけで、噂に聞く通り飛び出しては来ないのです。恐らく視界を覆えるほどでないと、違和感なく手前に飛び出すことができないのでしょう。

それに加えて、私のように頭が大きい上にメガネの人には、3Dメガネの着用が困難を伴います。90分も着けるのは苦痛です。

そもそも珍妙なメガネを着けて一家団欒もないだろう、という根本的な疑問もあります。映画館やシアタールームの独立した空間や時間の中では許されても、日常の一部から外れられない普通の家庭ではダメなのです。

メガネに関しては視点を制限できる携帯機器なら裸眼も可能ですが、手前に飛び出さない点は変わりません。任天堂3DSの不振の理由も一部はこれではないかと思います。

アバターのPanasonic独占が一部で批判されていますが、それ以前の問題でしょう。ラプンツェルは下の年齢を問わない点でアバター以上のコンテンツですが、テレビでの3D自体がどうなのか...。

プロジェクタなら視界を覆える面積を実現できますが、BD 3Dがテレビの「箱庭」前提の規格になっていないか心配です。もしそうなら、どんなホームシアターでも劇場の感動を家庭に持ち込めないことになってしまいます。今後の足かせにならないことを祈るばかりです。

小さな装置であるテレビに3Dは無謀だったかな、と感じざるを得ませんでした。

レールの上を動くもの

| コメント(0) | トラックバック(0)
テレビ東京「空から日本を見てみよう」でキリンと呼ばれる東京港のクレーンが出てきました。正式名称「ガントリークレーン」だそうで。

それを見てふと、鉄工所に設置してあるクレーンを思い出しました。小学生の頃に利用していた理髪店の向かいにあったのです。あれの名前を四半世紀以上も知りません。

形がわかっているものを何と呼ぶのか。文字ベースのネット検索が苦手とする分野で、形や機能など様々なキーワードで画像検索をかけて絞り込むのは全く面倒ですね。

「門型クレーン」だそうな。映画「トロン」の警戒ゲートみたいなアレです。リメイク版の方だとリコグナイザーと呼んだようですが。

なぜ印象に残っていたのかというと、レールの上に乗っていたからです。小学生にとってレールは鉄道だけのもので、それが鉄道以外の場所にあり、鉄道以外のものを乗せているのは、何かすごく憧憬を感じました。

鉄工所...ノダアンドコールマン片平店の柿生側向かいだったはずなのですが...コールマンも鉄工所ももうないのですね。なくして初めて「写真に撮っておけば」と思うのです。
<<前のページへ 4142434445464748495051

アーカイブ

ウェブページ

Powered by Movable Type 5.2.13

ホームページ

最近のコメント

アイテム

  • magnet_runner.jpg
  • autocraft1.jpg
  • material_sniper.jpg
  • acrobatdc_appcontainer.png
  • atok2017_kana.png
  • shinjuku_yahoo.jpg
  • shinjuku_google.jpg
  • synology_2.png
  • synology_1.png
  • pdpc10b.jpg