http://www.atmarkit.co.jp/fwin2k/itpropower/admin-kun/023/adminkun023.html
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30446&forum=34&13
「マウスを止めている状態」と「マウスを動かしている状態」では何が違うのだろうか。ここでは Excel の話をしているので、「Excel 上」でということにする。
「マウスを止めている状態」だと、Excel には WM_GETTEXT や WM_USER、WM_GETTEXTLENGTH 等が間断なく送信される。
「マウスを動かしている状態」だと、Excel には WM_MOUSEMOVE、WM_SETCURSOR、WM_NCHITTEST 等が間断なく送信され、合間に WM_GETTEXT、WM_GETTEXTLENGTH 等が送信される。この時送信される WM_GETTEXT、WM_GETTEXTLENGTH の数は、同時間だと「マウスを止めている状態」より「マウスを動かしている状態」の方が数が少ない。
この伝説を信じるのならば、「マウスを動かす状態」より「マウスを止めている状態」の時に、Excel はより多くの仕事をしているということになる。恐らく殆どのアプリケーションは WM_MOUSEMOVE、WM_SETCURSOR、WM_NCHITTEST はスルーして何もしていない事が多いだろう。対して、WM_GETTEXT 等では処理している事が多いはずだ。WM_USER に至っては、必ず捕まえて処理していると言えるかもしれない。
「マウスを止めている」からと言って、アプリケーションは何もしていないわけではないのだ。逆に「マウスを動かしている状態」の方がアプリケーションにとってはどうでも良い事であって、無視している事が多い。
Excel は「マウスを止めている」時により多くの仕事をしているという事だ。だから、「マウスを動かすと伝説達成!」なわけだ。
しかし、ここで思考停止してはいけない。
私はここに「マウスジェスチャー」の可能性を疑っている。マウスをぐりぐり動かす事によって、Windows は、ユーザーがイライラしている事を感知しているのだ!
何故ユーザーはイライラしているのか?Windows は一考する。
Windows はプロセス一覧を走査。
I/O に時間がかかっている Excel を発見!
Excel のプロセスプライオリティを一時的に上げる!(I/O に時間食われているなら無駄か?ハードディスクの回転数を上げる!?)
まさに人工知能。いや、もう Windows は意思を持つにまで至ったのだ…。オーマイガッ!