* U K I Y A H O N P O *
Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura,
che la diritta via era smarrita.
リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
浮子屋商店もよろしく。

その他雑文/タスクトレイを救え!

Top > その他雑文 > タスクトレイを救え!

WindowsXPを使っていて、起動時にタスクトレイに
ちゃんと全部のプログラムが表示されなくて困っている人はいませんか。

私の場合、下手をすると表示されるのがウィルスバスターのアイコンと、 LANの状態表示アイコンだけだったりして、「音量」もその他のアイコンも 使えなくて困ったりしています。

何故そうなるかの理由は分かっていたのですが、面倒で放置していました。
今ちょっと工夫したらそれが解消できたので、メモっておきます。

なんでそ~なるの?

何でこんな現象が起きるのか。
直接の答は、「WindowsXPの仕様*1」です。

スタートアップに色々プログラムを入れていたり、常駐ソフトを色々使っていたりすると、 システム起動時に、一斉にそれらのプログラムが立ち上がり、タスクトレイに自分のアイコンを 登録しようとします。

ところが、WindowsXPの仕様で、タスクトレイへの登録を4秒以上待たされると、 「登録失敗」ということで、OS側は、アイコンをつけるのをやめちゃうんですね。
ソフト側で、OSから「4秒ルールでやめといたよ」と言われた場合は、再度登録を行うようにすれば 問題は起きないのですが、そのような実装をしているソフトは稀です。
なにしろ、WindowsXP標準の「音量」アイコンですら、そのような実装になっていませんので。

従って、

  • WindowsXP起動時にはたくさんのプログラムが一気に起動するので重くなる。
  • 重くなるとタスクトレイへの登録に時間がかかる。
  • タスクトレイへの登録に4秒以上かかると、登録はキャンセルされてしまう。

という仕組みで、「タスクトレイにアイコンが表示されない」現象が発生するわけです。

じゃ、どうすればいいの?

では、どうすればこの現象が回避できるか。

方法はいくつかあります。

  • (A)スタートアップに色々登録するのをやめて、4秒ルールが発動しないようにする。
  • (B)すごく速いPCを使って、4秒ルールが発動しないようにする。
  • (C)起動時に一斉にプログラムを起動するのをやめて、順番に起動するようにする。

まあ、一番良い解決方法は、(C)の、順番に起動するようにする方法でしょう。
そのためのツールは、StartupEx等、色々出ているようです。

しかし私の場合、起動時に読み込まれるソフトで一番重いのがウィルスバスターでした。
こいつさえ重くなければ、他のアイコンはきちんと表示されるのに。

というわけで、自前でちょこっと手を入れて、ウィルスバスターを遅延起動するようにしてみました。

ウィルスバスター2006の遅延起動方法

【重要】この方法は下記に示すとおり、リスクを含む方法ですので、やってみる人はそれを覚悟でお願いします。

  • ウィルスバスターの正規の起動方法では無いかもしれないので、何か不具合が出るかもしれない。*2
  • ウィルスバスターが立ち上がるまでの「遅延」時間の間は、システムが無防備になる。

尚、下記の文章、レジストリのいじり方やサービスの停止の仕方が分からない場合は、いじらない方が良いと思いますので、詳しく書いてはいません。

ウィルスバスターの自動起動を停止する

まずは、ウィルスバスターがOS起動時に一緒に立ち上がるのをやめてしまいます。

(1)レジストリ

レジストリで、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run」を開き、
「"C:\Program Files\Trend Micro\Virus Buster 2006\pccguide.exe"」というキーを削除します*3

(2)サービス

マイコンピュータの管理から、以下の4つのサービスの起動方法を「自動」から「手動」にします。

  • Trend Micro Central Control Component
  • Trend Micro Personal Firewall
  • Trend Micro Proxy Service
  • Trend Micro Real-time Service

ウィルスバスターをスタートアップから遅延起動する

次に、ウィルスバスターをスタートアップから起動するようにします。
但し、単にスタートアップに入れただけでは、結局一斉に起動してしまうため、何秒か待ってから起動するように小細工します。

(1)sleep の入手

WindowsXPでは標準で「何秒か待つ」コマンドがありませんので、そのためのツールをを入手します。
私が利用したのはsleep.exeです。 これを、例えば c:\sleep.exe として置いておきます。

(2)バッチファイルを作成

sleep.exeを使うように、以下の内容のファイルを、例えば c:\vb2006startup.cmd というファイル名で作成します。
30とあるところは待つ秒数です。PCが起動後に落ち着くのにどれくらいかかるかによって調整してください。

c:\sleep.exe 30
start "VB2006" "C:\Program Files\Trend Micro\Virus Buster 2006\pccguide.exe"

start の引数ですが、単にプログラムファイル名だけを""で与えると、ウィンドウタイトルと誤解されてしまうため、こうしています。

(3)バッチファイルのショートカットをスタートアップに登録

c:\vb2006startup.cmd のショートカットを、スタートアップフォルダ *4に登録します。

ショートカットのプロパティで、「実行時の大きさ」を「最小化」にしておくと邪魔にならなくて良いでしょう。

(4)起動試験

全部出来たら、PCを再起動してみてください。

  • タスクトレイにアイコンが登録されない現象が直ったこと
  • コマンドプロンプトのウィンドウが(最小化状態で)起動すること
  • 何秒か経ったあと、ウィルスバスターが起動すること
  • ウィルスバスターの状態表示で、ファイアウォール等がきちんと起動していること

を確認し、終了です。

なお、止めてしまったサービスが心配かもしれませんが、pccguide.exe が自動的に必要なサービスを 起動してくれるようなので、問題ないようです。


*1 個人的にはこれはWindowsXPの仕様不備に近いと思うのですが…
*2 今のところ特に問題は出ていませんが…
*3 後で戻せるように、削除する前にエクスポートしておいた方が良いでしょう
*4 C:\Documents and Settings\All Users\スタート メニュー\プログラム\スタートアップ

このページの最終更新日: 2006/12/04 11:15:49 JST (3828d)
このページのトラックバックURL: http://ukiya.sakura.ne.jp/index.php?tb_id=6396adb46d3fd622905120062eec863f