Windows7のタスクバーではアプリケーションが自由に終了可能みたい

少し困っていて、ちょっぴり前進したのでメモ書き。
Windows7のUI機能である「ライブサムネイル」は、タスクバーにマウスを持って行くと、そのアプリをサムネイル表示してくれる便利な機能です。
しかし、このタスクバープレビュー機能、右上に小さいクローズボタン(×ボタン)が表示されており、このボタンを押すことによってアプリケーションが終了可能です。

問題は、このボタンはどうやら「強制終了」と同じボタンだという事。

タスクバープレビューよりクローズボタンを押すと、アプリケーションが終了されてしまいます。
また、Aeroを無効化しても表示されてしまうという、結構やっかいな代物。


それに加え、次のようなアプリケーションが問題です。
WindowClose.zip (3KB)
このサンプルアプリは.NET Framework 2.0で作られた、非常に簡単なものです。
やっていることは、右上のクローズボタンと、閉じるの選択の無効化。
7-Taskbar-Tweaker_1.jpg7-Taskbar-Tweaker_2.jpg
Windows2000やWindowsXPで実行すると、上のように正常に無効化されています。

これをWindows7で実行すると、次のような感じに。
7-Taskbar-Tweaker_3.jpg7-Taskbar-Tweaker_4.jpg7-Taskbar-Tweaker_5.jpg
アプリケーションの右上クローズボタンは無効化されますが、タスクバーで右クリックすると「ウィンドウを閉じる」と表示されてしまう上に、タスクバーのプレビューでも閉じることが可能に・・・。


分かったことは、タスクバ領域へマウスを持って行ったときのプレビューは、次のフリーソフトを使用すれば無効化可能のようです。
7 Taskbar Tweaker
7-Taskbar-Tweaker_6.jpg
Windows7にて実行し、下から2番目の「Disable thumbnail preview on mouse hover」へチェックを入れると、タスクバーのプレビューが無効になります。
当然ながら、Microsoftのツールではないので、サポート外の方法。

もう一つの右クリック時の動作無効化は、残念ながらまだよく分かっていません。


う~む、Windows7もなかなか難しいですね。
ボリュームライセンス版は、ダウングレード権がWindows7販売終了までですし、もうずっとWindowsXPでもいいんじゃないかなぁと思っていますが、世間様には逆らえません。
もう少し、いろいろ調べてみなければ。


※追記(2011/04/08 19:49)
この動きは、どうやら強制終了とも違うようです。
詳しい人に聞いてみたところ、通常の右上ボタンはアプリケーションの終了イベントが発生して終了し、強制終了は対象のPIDをKILLする動作で、タスクバープレビューからの終了はアプリケーションにタスクバーが終了をポストする動作とのこと。
つまり、右上終了 ≠ タスクバー終了 ≠ 強制終了という事だとか。
これらは仕様で、それぞれの動作を変えることは出来ないらしい。

| コメント(5) | トラックバック(0) |
■Yahoo!オークション おすすめ商品■
Web Services by Yahoo! JAPAN

トラックバック(0)

トラックバックURL: http://type-y.com/mt/mt-tb.cgi/1592

コメント(5)

確か社内資料で記述していたような確認します。

よろしくお願いします。頼もしいです。
何らかのAPIをオーバーライドすれば無効化できそうな気がしますけど、行き詰まってました。

社内資料を見ました。私の勘違いでした。すません。
詳しく調べた結果、タスクバーの閉じるはご指摘通り強制的に閉じるタスクバーが持っているもので、プログラムの閉じるとは別のものらしいです。そのため.net制御とは別なので、その制御の受け渡しができれば、できるかも・・・以下は参考HPです。
http://msdn.microsoft.com/ja-jp/magazine/dd942846.aspx

>ちゅんつ さん
ありがとうございます。
読む限り、やはりどれかをオーバーライドすれば出来そうですね。
もう少し調べてみます。


>unkown さん
タスクバーから終了時に、FormClosing/FormClosedのイベントが発生することは知っているんですが、
例えば数分間処理がかかるDB更新処理中に、アプリケーションを終了させたくない場合とかに終了を無効化したいと思います。
そういう場合、確認ボタンを出して時間を稼ぐぐらいしかないなぁとの印象です。

そもそも、タスクバーに表示しなければ根本解決しそうな気もしてきましたが・・・。

コメントする