Windows sound device をコマンドラインで制御2021/02/05 00:00

最近はパソコンを使っての電話会議がより頻繁となり、使い道に応じてヘッドセットやスピーカーフォンなどサウンドデバイスを切り替えることが多くなった。
その都度 Sound コントロールパネルを開いて優先デバイスを選択すればいいのだけれど、ワンクリックで特定デバイスを On/Off したいな、と思っていろいろ探していたら、便利なプログラムが公開されていた。

NirSoft SoundVolumeView
https://www.nirsoft.net/

GUI でもコマンドラインでも使えるバイモーダルなプログラムで、GUIでは Sound コントロールパネルと同様なことができる上にサウンドデバイス一覧が状況詳細付きで見える便利なもの。

コマンドラインでも、それぞれのデバイスの制御ができる。
例えば、とあるサウンドデバイスのスピーカー、マイクを同時に On/Off トグルさせたい場合などは、

C:\Nirsoft\SoundVolumeView.exe /DisableEnable "AudioDevice001\Device\Speakers\Render" /DisableEnable "AudioDevice001\Device\Microphone\Capture"

というショートカットを作れば、ショートカットアイコンをクリックするたびに enable/disable のトグルができる。
("AudioDevice001\Device\Speakers\Render" の部分は、GUI での一覧でデバイスを選択し右クリックで Property を選び、そこで表示される "Command-Line Friendy ID" を使う)

NirSoft はこのほかにも便利なシステム系ツールを公開している貴重なエンティティーだ。

Zoho mail2021/02/02 00:00

とある理由でいろいろなフリーな web mail を探していたところ、zoho mail なるものを見つけた。インド発祥のサービスらしい。

http://www.zoho.com

見た目かなり高機能で、フリーで使えるのが不思議なくらいよく出来ている。
便利なのが、受信したメールのフィルター機能で、ここでスクリプトで自動処理ができる。
例えば、メールを加工して、シンプル化したものを他に転送したりとか、webhook を起こせたりする。

メールフィルタの項目に、"Custom function (Creator)" というのがあり、これを選ぶとスクリプトエディタが開く。
すると、Zoho 社 のスクリプトなのか、Deluge というスクリプト記述ができる。
例えば、条件の一致したメールが来たら、webhook を使い、 IFTTT等他のサービスを起動するなど。
webhook は invokeurl() という関数(コマンド?)で実現できる。
加工した情報から email を送るなら、sendmail()

Google script でもできるのだろうけど、これは web mail と統合されて非常に使いやすくかつ高機能です。

Windows Mobile 用の GPS 地図 - Part 5 - FreeOTFE2010/04/12 22:57

gm_lite 改造版 (ver 0.1.4 ベースにした、rev 5.0) を update しました。

http://www.ne.jp/asahi/net/pockey/program/gm_lite-0.1.4_r5.0.patch.zip

メジャーな update は、ランドマークファイルとして lmark.js というファイル名のものしか読み込めなかったのを、指定できるようにしました。

利用法は、
「Windows Mobile 用の GPS 地図 - Part 4 ― 」
http://gethtmlw.asablo.jp/blog/2009/08/23/4533241
をご覧ください。

ReadGPS.exe と組み合わせて Windows Mobile で使う場合は、ll.js をやり取りするディレクトリを、gm_lite.html 内の Filelljs という変数に設定してください。
Filelljs = "/ramdisk/ll.js";
など。

さて、gm_lite を利用して地図を持ち歩くときに問題となるのが、ディスクのクラスタサイズより小さいサイズのファイルを多量に保存するために発生する無駄領域。例えば 16GB の microSDHC に地図ファイルを保存したいと思っても、地図の実容量は 8GB 分も入らず ディスク満杯、となりがちです。一枚の地図データがクラスタサイズである 16KB より遥かに小さいのが理由です。

クラスタサイズを何とか小さくしたい。そこで利用したのが FreeOTFE という、本来データを暗号化してディスクに保存するためのプログラム。

http://www.freeotfe.org/

これ、Windows Mobile に confidential なデータを保存する場合は必須です。Windows Mobile にも外部ストレージを暗号化する機能がありますが、例えば ROM の入れ替えや初期化を行うと二度と読めなくなるそうです。しかし FreeOTFE ではパスワードさえ覚えておけば大丈夫。

これ、暗号化用ボリュームファイルを作って利用するのですが、この機能を利用して、gm_lite 地図保存用ボリュームのクラスタサイズを小さくします。
まず、PC でボリュームファイルを作ります。microSDHC に入れる場合、FAT32 ですから、最大のファイルサイズは 4GB なので、4095MB のサイズのボリュームファイルを作ります。PC で作る理由は、PC ではこのボリュームファイルのフォーマット時のクラスタサイズの設定の自由度が高いからです。
ボリュームファイルを作ったら、PC 上でマウントしてフォーマットです。DOS 窓 (cmd.exe) でフォーマットするのがコツです。

例えば、g: にマウントした場合、

format g: /FS:FAT32 /A:1024

このボリュームファイルのクラスタサイズを 1KB でフォーマットします。これをアンマウントして、Windows Mobile に移してマウントして使えば、クラスタサイズ 1KB の記憶領域の出来上がり。
クラスタサイズが 1KB なので、無駄領域が気にならない程度で済みますから、16GB の microSDHC の記憶領域がフルに活用できます。
地図データ自体は 16GB フルに使うほどのデータを頻繁に使うことはまずないので、4GB のボリュームで十分。むしろ、各地域別に適切サイズのボリュームを作って地図を保存しておき、その都度マウントして使えば、つねに全地図データを持ち歩く必要もなく、地図ファイルの管理も楽になります。
この場合暗号化の機能は全く使っていませんが、非常に都合のよいソフトです。
本当は iso ファイルを Windows Mobile でマウントできるようなソフトがあればいいのでしょうが、FreeOTFE の機能で十分実用になります。

さらに gm_lite 地図の容量をけちりたい場合、かつ人口密度が低い地域で詳細地図を多量する場合には、いい方法があります。
このような条件の場合は、一枚の png 地図画像に道路も何もない場合があります。この場合 png ファイルサイズは 178 バイトです。そこで、178 バイトのファイルを検索して削除してしまいます。
何の情報も無い地図画像なら、無くても全く問題がないからです。

Outlook only な環境で Thunderbird (POP3 client) を使おう! - vol.22010/02/06 21:55

Exchange server で POP3 port が使えない環境で何とか Thunderbird を使えないか、と模索したお話。

まず考えたのが、Outlook からメールデータを吸い上げて POP3 server として送信してくれるものがないか、という期待。例えば高機能な MP3 Player とか、iPod は、Outlook の予定表とかと同期ができますよね。

いろいろと検索キーワードを工夫していくと、なんとありました。

GoPOP
http://www.maximized.com/products/gopop/

まさに期待通りのプログラム。有料ですが、Thunderbird が仕事で使えるなら $30 は安いもの。 Release して数年経っているのに、未だに ver.1.0 というのが気になりますが。
お試し期間があるのでダウンロードして使ってみます。ものすごく期待して動かしてみると...ちゃんと動かない。Outlook に溜まったメールが膨大なのが原因なのか。Thunderbird と接続して、メール一覧を読み込むところで固まっている。なんとぉ、残念。地獄で神を見て、すぐまた地獄に突き落とされた感じ。

ここでわかったのが、 MAPI という API で Outlook にアクセスしているということ。ならば作ってしまえ、と参考資料を探すと、なんと Delphi 向けのサンプルプログラムが公開されている。

http://www.imibo.com/imidev/delphi/les/index.html

Example #6 に、そこそこ目的に近い記述がある。Example #7 がどんぴしゃだが有料なので、Example #6 を見てみる。懐かしい Pascal だ。
これをみると、数時間で目的が達成できるほど簡単ではなさそうだ。
本件にそんなに時間をかけることができないので、自作はとりあえず pending。他に目的を達成できるものはないか探してみる。

すると.....あった。

DavMail
http://davmail.sourceforge.net/index.html

これは、Exchange Server の OWA(Outlook Web Access) と通信をし、POP3, IMAP4 だけでなく、カレンダ情報や SMTP、LDAP まで実現している。しかも Free。あまりにも感動して donation してしまったほど。

さて動かしてみる。すると、これはすごい。何のストレスもなく動く。しかも Java で書かれているので、Linux でも動いてしまう。さらに、Thunderbird に Lightning をいれれば、カレンダ機能も使える。LDAP は setup に未だ成功していないが、POP3 と SMTP だけ動けば十分です。

もうこれでメールに関しては完全に Outlook とはおさらばです。会議の invitation や会議室の予約などは相変わらず Outlook のお世話になりますが、普通のメールを Thunderbird で処理できるだけで十分です。
あの productivity が完全に戻ってキターーーーーって感じです。

次なるハードルは Exchange 2010 への移行です。DavMail は現在対応していないので、この先不安ですが、IT がやっと Exchange 2007 に移行したばかりなので、あと 3 年は持つと予測できます。その間に DavMail project に頑張ってもらいましょう。

Outlook only な環境で Thunderbird (POP3 client) を使おう!2010/01/31 00:14

会社で Microsoft Outlook しかメールクライアントを使えない場合はありませんか?

たしかに Exchange Server と Outlook が実現する、予定表やメール送信先の検索機能は仕事の生産性を向上するスバラシイ機能です。
しかし、メールクライアントとしての Outlook はあまりにも使えない。
検索もしかり、フォルダ管理(階層構造管理)、振り分け、オフライン時の使い勝手、Exchange server が メール保存容量の上限となったときに移動させるときに、階層構造で先のバックアップと merge できないなど、その生産性の悪さは計り知れない。

もちろん VBA などでスクリプトを書いたり COM オブジェクトとしてツールを作れば克服できることも多いが、すでに一般の POP3 メールクライアントで実現できることをわざわざ別途作って実現するなんてあほらしいし、そんな特別な機構を勉強しようとも思いません...

そんな私も Outlook しか「基本」使えない会社にかなり前に転職しました。入社して 1ヶ月は新天地ゆえ、与えられた環境になじむべく Outlook と仲良くなる努力をしておりました。
予定表やら会議室の予約やら会議通知の機能などには、目から鱗でしたが。

しかし、やはり使い勝手に難があります。具体的にどこが悪い、といわれると指摘し辛いですが、なぜか使い勝手が悪い。たぶん、受信メールの送信元や Subject に応じてフォルダ管理をし、また受信メールを自動的に所望のフォルダに振り分けるという機能が弱いのがメジャーな理由だと思います。それ以外にもありますが。

メールは受信即読みはしますが、その内容で何かアクションを起こさねばならない場合、読んでそのアクションの必要性は認識しますが、仕事の優先順位によっては、そのメールをいったん保留にしておくことが多いですよね。いったん読んだメールを後で処理することを考えた場合、Outlook はそれを助ける機能が貧弱なのです(階層構造管理など)。
なにせ、どのメールが保留で、またそのメールはどこにあるのかを仕事の優先順位に応じていち早く見つける、ということを後からできるかどうかが仕事の効率に大きく影響しますが、それがままならない。。

というわけで、やはり従来使い慣れたメールプログラムに戻りたい...
おそるおそる Exchange Server の POP3 ポートをたたいてみます。
なんだ、開いてるジャン...
たぶんセキュリティーの問題とかで、IT 担当から後で怒られるかもな、と思いつつ、背に腹は替えられず POP3 のお世話になることに。

あれから 8年、とうとう年貢の納め時がやってきました。Exchange Server の upgrade とともに、POP3 port が閉じられました...南無阿弥陀仏...

やれやれ、また Outlook と親友にならねば、と思いきや、なんと毎日毎日処理できるメールが送られて来るメール量に追いつかず、首が回りません。なんだこの状態は。
まわりからは、私がメールを処理仕切れていないことを悟られる始末。

それでも頑張って Outlook を使いこなす方法を探し、なんとか catch up することに成功するまで一ヶ月あまり。

ところが最大の壁が。Exchange Server が保存できるメール量の上限に近づき、ローカルフォルダに移動する時期が来ました。POP3 使用時は、メールはすでに POP3 メールプログラム管理下のローカルフォルダに階層構造のまま落ちているので、Exchange Server の昔のメールを消しても何ら問題はなかったのですが、今度は違う。

最初のローカルフォルダへの移動は、管理しているフォルダ階層構造ごと移動しました。今回は二回目です。今回も管理しているフォルダ階層構造ごと移動しようと思いきや...できない...なんだそりゃ。
別のフォルダに階層構造ごと移動することはできても、以前保存した階層構造に追加する形で移動することはできないんですね。Outlook では別フォルダになってしまう。

正直 8年前のメールを読み返さねばならない場合もある今の仕事で、昔のメールが整理された形でバックアップできないこの現状をどうしてくれようか。

仕事の生産性を追求するか、それとも与えられたツールと生きる割り切りすなわち生産性を犠牲にし、従来さくっと出来た類の仕事にも目をつぶることに腹をくくるか。そこまで考えさせられました。

やはり Outlook はつかえない。Thunderbird に戻りたい。

そこで POP3/IMAP を受け付けない Exchange で Thunderbird を使う道を模索しました。すると、なんと世の中にはすごいものがあるものです。

長くなったのでその Solution は次回。