ハングアップの日々

2007年 3月分

2007/03/31

HDD

 日立GST HDT725032VLA360 を購入。320GB S-ATA。\7,770 + 5年保証 \525。タイムセールで \1k ばかり安く買えた。

2007/03/28

URL memo

フォアグラウンドウィンドウ

 WinXP で、ウィンドウがフォアグラウンドになっているはずなのに、キーボード入力を受け付けないことがしばしばあってイライラする。SystemParametersInfo() の SPI_GETFOREGROUNDLOCKTIMEOUT, SPI_SETFOREGROUNDLOCKTIMEOUT が関係しているのだろうが、この数値を簡単に変えられるソフトは何かあるのだろうか。無いなら作るか?

2007/03/25

開発環境インストール

 早速昨日買った TS-H653A を USB-SATA 変換ケーブルを使って CF-R2C につないで、CF-R2C に開発環境をがんがんインストール。VS 6.0, VS.NET 2003, WDK, Windows SDK。VS.NET 2003 は本体だけでなく、SP1 のインストールにもやたら時間が掛かるのは何とかしてほしい。
 R2C と R6M の使い分けをどうしていくかな?

URL memo

2007/03/24

Let's note CF-R6M、リカバリ領域

 Vista モデルの Let's note R/T は、今までのモデルとは HDD リカバリの方式が全く異なっているようである。

 今までは、HDD の末尾に約 3GB のリカバリ領域があった。この領域は普段は、BIOS / ファームウェアレベルで隠されており、起動時の Panasonic のロゴが消えた後は、通常の方法ではリカバリ領域には全くアクセスできなくなってしまう。(ICC などを使えば別だが。) そのため、Windows 上で多少の操作ミスをした程度ではリカバリ領域が消えることはあり得ない。リカバリ領域は FAT32 でフォーマットされており、リカバリは DOS ベースのプログラムで行うようになっている。また、リカバリ領域は、BIOS メニューから起動するようになっている。

 これに対して、Vista モデルの R6M では、Vista の標準機能を用いてリカバリを行うようになっているようだ。(T5M もおそらく同じ。) リカバリ領域は、HDD の先頭にあり、約 6GB の NTFS 領域となっている。Vista の起動時に F8 を押して、起動メニュー画面を表示させ、「コンピュータの修復」を選択することで、リカバリ領域からの起動が行われる。これで起動するのは Vista の機能縮小版で、Windows Recovery Environment (WinRE) と呼ばれている。WinRE にはコマンドプロンプトもあり、WinRE 領域は X:、通常の Vista ドライブは C: として操作が可能となっている。
 WinRE 領域は、通常起動の Vista の「ディスクの管理」で見ると、EISA 構成と表示され、ドライブ名の割り当てやパーティションの削除などの操作はできないようである。しかし、ファームウェアレベルでアクセスを禁止してあるわけではないので、今までのモデルに比べると簡単にリカバリ領域を破壊することが可能と考えられる。最初からリカバリ DVD が添付されるようになったのはそういう理由からなのだろう。
 WinRE 領域の中身を調べると、使用しているのが約 3GB で、残りの約半分は空いていた。X:\HD\2\ には、IMAGE.WIM という約 2.2GB のファイルがあり、これがリカバリ用のイメージファイルだと思われる。

 WinRE 自体に関する疑問点がいくつか残っているが、簡単に調べた範囲で判明した点は以上である。

買い物

 3年前に買った GSA-4082B の挙動が不審なので、売り払って新しい DVD ドライブを買うことにした。DVD ドライブは 3台続けて、日立LG の GSA シリーズを買ってきたので、今度は他のメーカのものを買ってみることにした。せっかくなので、S-ATA 接続のドライブを試してみることにした。東芝サムスン (TSST) の TS-H653A(B) を購入。\5,580 - \1,320(売却分)= \4,260。しかし、光学ドライブも安くなったもんだ。4082B は \9.4k で買ったというのに。

 3.5 インチベイ内蔵型カードリーダーの FA405MX3 を購入。\1,880。前から内蔵型カードリーダーを買いたいとは思っていたのだが、SDHC 対応で miniSD 直挿し可能なものがようやく出てきた。
 「37種類のメディアに対応」と書かれていて、いつの間にそんなにメディアが増えたのだろうと思ってよく見ると、SHDC の Class 2/4/6 を別々のメディアとして勘定してあった。せこい。

2007/03/23

CF-R2C、PC リフレッシュサービス

 帰宅すると、CF-R2C がリフレッシュサービスから戻ってきていた。残念ながら、傷だらけの天板はそのままだった。摩耗してテカテカになっていたキーボードとパームレストはちゃんと交換されていた。が、やはり天板がそのままだったため、あまりきれいになった気がしない。
 某所では、神のようなサービスだと讃える声もあるが、ちょっと期待しすぎていたようだ。無料で HDD や液晶まで交換してもらった人もいるようなので、そういう人たちにとってはまさに神なのだろうが。

2007/03/22

Visual Studio 6.0, Vista

 CF-R6M (Vista) に、敢えて動作対象外の Visual Studio 6.0 をインストールしてみた。現在は使っていない GSA-4082B(DVD ドライブ)を USB-IDE 変換ケーブルを使って CF-R6M に接続してインストールしようとしたのだが、ファイルのコピー中に、CD-ROM が読めなくなってしまう現象が多発した。GSA-4082B が寿命ではないかと思われる。結局、デスクトップマシンの DVD ドライブからネットワーク経由でインストールした。Vista のディスクキャッシュが非常に有効に働いていたのか、インストールをやり直すと、前回うまくコピーができていたところまでは、2回目からはコピーが一瞬で終わってしまった。

 VS 6.0 インストール時に、このプログラムには既知の互換性の問題があるとのメッセージが表示された。また、インストールが終わって、試しにプログラムをコンパイルしてみると、vcspawn.exe と rc.exe の実行時に同様のメッセージが表示された。一応プログラムは無事にコンパイルできているようなのだが・・・。

URL memo

中道左派で行こう: 「Windows Vista」のカテゴリー - Windows VistaとXPのデュアルブート環境では「システムの復元」「以前のバージョン」が利用できない!など。
Windows Vista開発史――目次――:ITpro

2007/03/21

URL memo

gaeの日記 - Vistaで状況によってビームカーソルが激しく見づらい、またはまったく見えない件 - ビームカーソルが見づらいのは店頭で気付いていた。beam_r などに変更すれば見やすくなるらしい。よく見ると INCM の作者だった。しょぼいカレンダーの運営もこの人がやっているようだ。知らなかった。
LClock - .Fav(blog) - TClock から派生した、LClock (Longhorn Systray Clock) というソフトがあるそうだ。見た目はかなり違っているようだ。

Vista プログラミング URL memo

Vista, XP デュアルブート URL memo

Let's note URL memo

CF-R2C

 CF-R2C を予約していた PC リフレッシュサービスに出した。日通が来て、パソコンポで持って行った。三日で戻ってくるらしいので、どこまできれいになるか楽しみにしながら待つとしよう。

 CF-R2C の別売オプションを見ていて、新しいバッテリーパックが出ていたことを知った。R2C に付属していた CF-VZSU24AU は 7.4V 4.4Ah だったが CF-VZSU24BU は 7.4V 4.8Ah だそうだ。30分ぐらい稼働時間が延びるということか。リフレッシュサービスから戻ってきたら、\10k という特別価格でバッテリーが買えるらしいが、4.8Ah の方が買えるのだろうか。

Vista, アクセスキー

 Vista でメニューのアクセスキーを示す下線が表示されないのが非常に気になった。Yuya Yamaki’s blog - アクセスキーの下線を参考にして、アクセスキーに下線が表示できるようになった。

2007/03/20

URL memo

【特別企画】モバイルノート頂上決戦10番勝負 LaVie J 2機種 vs. Let'snote R6/W5 - LaVie J は、以前掲載した VersaPro UltraLite を一般向けに変更したものらしい。

TClock Light, Vista

 TClock Light を Vista 上で管理者権限で動かしたときに、右クリックメニューが表示されない問題だが、ChangeWindowMessageFilter() を使うことで無事解決した。しかしなぜか終了できない。コマンドラインからの終了 (tclock /exit) はできるのだが、右クリックメニューからの終了ができない。また後で詳しく調べるとするか。

 時計の文字色がおかしい問題も調べてみた。exe/main2.c の InitTextColor() で文字色の初期値を決めているようだ。これを見ると、XP で Luna を使っている場合は、時計の文字色を白にするようになっているようである。Vista で Aero 等を使っている場合も時計の文字色を白にするように変更してみた。

 右クリックメニューから終了できない件を再調査してみた。ウィンドウを作成した後に ChangeWindowMessageFilter() を呼んでいたせいで、作成時に tcdll.tclock から tclock.exe に送られるメッセージがブロックされていたのが原因だった。ウィンドウを作成する前に呼ぶように変更することで解決した。

 Vista では、UI のデフォルトフォントに「メイリオ」が使われているはずなのに、TClock のデフォルトフォントは「MS UI Gothic」になってしまう問題がまだ残っているが、とりあえず、大きな問題はなくなったように思う。

2007/03/19

TClock Light, Vista

 TClock Light の Vista での挙動を確認してみた。

 まず、時計の文字の表示位置がおかしい。文字が上に寄っている。TClock には文字の表示位置をずらす機能があるので、それを使って下にずらしてみたが、6ドット以上、下にずらすと今度は文字の下端が切れてしまった。Spy++ で見てみると、時計を表示している部分のウィンドウサイズが縦に小さくなっていた。ソースを調べたところ、Vista でも XP と同じ処理をすれば正しい位置に表示できるはずなのに、バージョン判定処理が間違っているせいで表示がおかしくなっていた。
 時計の文字の色もおかしいが、こちらはとりあえず手動で色を変更すればよい。

 UAC (User Account Control) 関係でトラブルが発覚。システムの時間を調整するには管理者権限が必要なので、SNTP を使って時刻合わせをするには、tcsntp.exe を管理者権限で起動しなければならない。tcsntp.exe のマニフェストファイルを変更して、tcsntp.exe を起動する際には必ず管理者権限で起動するようにするという方法もあるが、そうすると tcsntp を自動実行した際にも必ず UAC の確認画面が表示されてしまう。
 tcsntp を完全に自動実行できるようにするには、tclock.exe を管理者権限で起動すれば良さそうだが、そうしてしまうと今度は UIPI (User Interface Privilege Isolation) に引っかかって、右クリックメニューが表示されなくなってしまう。
 管理者権限で動くプログラムの側で、通常権限のプログラムからのウィンドウメッセージを受け付けるように設定できれば良さそうだと思い、調べてみると、ChangeWindowMessageFilter() という API が見つかった。Windows SDK をインストールしていないため、MSGFLT_ADD と MSGFLT_REMOVE の値が分からなかったが、MSGFLT_ADD=1, MSGFLT_REMOVE=2 らしい。

2007/03/18

Vista

 Windows Vista では OS の標準機能として、パーティションの拡大縮小ができるようになった。これは便利だ。「コンピュータの管理」を起動し、「ディスクの管理」でパーティションを選択し、「ボリュームの圧縮」を実行するとパーティションを縮小できる。(データ圧縮を行うわけではないのが紛らわしい。)
 Aero が有効になっていると、アクティブなウィンドウと、そうでないウィンドウの区別が非常に分かりにくい。そのせいで、ウィンドウをスクロールしようとしたがアクティブになっておらずスクロールされないといったことが何回かあった。デザインに凝るあまり、使い勝手を落とすのはどうかと思う。一方 WinKey + Tab による 3D フリップは、分かりやすくて良いと思う。

R6M

 R6M に入っている HDD を調べたところ、日立GST の HTS541612J9SA00 だった。ちなみに、R2C は東芝の MK4025GASL である。

デュアルブート

 R6M を Vista と XP のデュアルブートにしようかと考えている。デュアルブートにするための方法は、Windows XPとのデュアルブート環境(2) が参考になりそうである。XP を後からインストールして、デュアルブート環境を構築するには、Vista の DVD に入っている Bootsect.exe が必要らしい。しかし、プリインストールマシンなので、Vista の DVD はない。Windows Anytime Upgrade DVD の中を見たところ、Bootsect.exe があったので、これが使えそうである。
 WinXP を入れることができるようにするため、前述の機能を利用して、C: ドライブを 60GB に縮小してみた。

2007/03/17

Let's note CF-R6M

 昼過ぎに、注文してあった Let's note CF-R6MWVAJP が到着した。カスタマイズモデルで、メモリ 1GB、HDD 120GB、さらにキャンペーンでメモリ 512MB 増設されている。
 とりあえず分厚い。デュアルコアなだけあって、やはりそれなりに熱くなる。某所では、バッテリー駆動時間が短くなったことでさんざん叩かれているが、それでも R2C に比べるとカタログスペックで 2.5時間長いのであまり気にしてはいない。

 AC アダプタが一回り小さくなっていた。さらに、断線しにくいように、コネクタ付近のケーブルが補強されていた。こういう細かいところでも改良が行われているのは好感が持てる。

無線 LAN

 R6M の無線 LAN の設定でちょっと苦労した。どうも ESS-ID を隠している場合だと、「ネットワークがブロードキャストを行っていない場合でも接続する」というのにチェックを入れないとつながらないようだ。「警告: 選択すると、このコンピュータのプライバシーが危険にさらされる可能性があります。」などと書かれているのが気になるところではあるが、そうしないとつながらないので、仕方がない。

Vista 対応

 自分の作ったプログラムが Vista 上でちゃんと動くのか、少し前から気になっていた。smmp を Vista 上で動かしてみたところ、メニューの表示がおかしくなってしまった。Vista では、新フォント「メイリオ」が標準で使われているが、これが今までの MS UI Gothic に比べて文字の幅が広いようで、メニューがぎりぎり収まる幅でウィンドウをデザインしていたせいで、メニューが 2段になってしまった。少しウィンドウの幅を広げないといけないかな。

2007/03/16

Let's note CF-R2C

 修理に出していた Let's note CF-R2C がようやく戻ってきた。今度はまともに直っているようである。結局 1ヶ月近くかかってしまった。

 HDD が交換になってしまったため、環境設定を最初からやらないといけない。
 CF-R2C の OS は、初期状態では WinXP SP1 にいくつかの hotfix がインストールされた状態になっている。しかし、これらの hotfix はアンインストールできるようにするためバックアップファイルが作られており、これが意外と場所を取っている。まずは hotfix をすべてアンインストールしてしまった。
 次に WinXP SP2 をインストール。普通にそのまま WindowsXP-KB835935-SP2-JPN.exe を実行すると、SP2 インストール前の状態に戻せるようにバックアップファイルが作られる。しかし、戻す気はないので、バックアップファイルは邪魔なだけになってしまう。バックアップファイルを作らずにインストールする方法はないかと調べてみたところ、コマンドラインオプションとして /N を指定すれば良いということが分かった。
 SP2 を入れた後、Windows Update を実行。ダウンロードだけでもやたら時間が掛かってしまう。SP2 以降の更新だけで 80個近くある。バックアップファイルは 300MB 以上になった。
 以下の PC リフレッシュサービスの関係もあるので、ここで環境設定は一度中断。

 R2C が無事復活したので、「レッツノート10周年記念 PCリフレッシュサービス」を申し込むことにした。次の休みの 21日にちょうど上手い具合に空きがあったので、早速その日に予約を入れた。情報漏洩などの事故を防ぐため、データは削除しておいて欲しいとのこと。環境構築の続きはリフレッシュサービスから戻ってきてからにするか。
 天板は、リフレッシュサービスの対象外なのだろうか。かなり傷が付いてしまっているので、これも交換してくれると嬉しいのだが。

2007/03/14

URL memo

DirectShow URL memo

2007/03/12

URL memo

2007/03/10

URL memo

2007/03/08

URL memo

2007/03/07

URL memo

2007/03/04

プログラミング

 LoadCursor() で IDC_HAND を指定すると手の形のマウスカーソルが使える。Win2k 以降らしいが、なぜか Win98SE + IE5.5 でも使えた。

 Win2k ではウィンドウの半透明化がサポートされているが、これについて簡単に調べてみた。単にウィンドウ全体を半透明にするだけなら非常に簡単で、SetLayeredWindowAttributes() を使うだけで半透明化ができる。より複雑なことをしたり、速度が必要な場合には、UpdateLayeredWindow() を使う。この場合、WM_PAINT を使った従来の画面描画方法は使えない。詳細は「レイヤード ウィンドウ」などを参照。

 どちらも smmp に組み込んでみた。うまく動いているようだ。

マウスポインタの影

 以前から Win2k で導入されたマウスポインタの影が嫌いで、わざわざログイン画面での影を消す方法も調べてみたこともあったのだが、前述の「レイヤード ウィンドウ」を見て考え直すことになった。図 3. の解説には「アルファ シャドーがカーソルに奥行きを与え、画面上で目立ちやすくします。」と書かれている。SXGA などで Windows を使っていると、マウスカーソルをよく見失うことがあるのだが、見失わないようにするには鬱陶しく感じるくらい目立っていた方が良いのかもしれない。それよりも画面が狭い場合には目立ちすぎるような気もするが。

2007/03/01

spam

 先月の spam メールの集計結果。着信拒否にならなかった spam が少なくとも 2146通。そのうち、@nifty の迷惑メールフォルダーでも Spam Mail Killer でも spam として認識できなかったものが 2通(0.09%)。2月になったあたりから急に @nifty の迷惑メールフォルダーの判別精度が良くなった。基本フィルターだけでほぼ完璧に判別できている。何かあったのだろうか。

メール受信状況 2007/02


Copyright (C) 2007 K.Takata