Windows 秘話よく使用するプログラムを決定する

Raymond Chen

[スタート] ボタンをクリックすると、 [スタート] メニューが表示されます。左側にはプログラムの一覧が表示されます。このプログラムの一覧は、どのように決められるのでしょうか。原則としては、最近頻繁に実行したプログラムが、[スタート] メニューの最初の領域に表示されるようになります。ただし、この原則を踏まえて、いくらか調整を行う必要があることがすぐにわかりました。

基本ルールでは、プログラムが起動されるたびに、そのプログラムがポイントを獲得します。反対に、プログラムが起動されない期間が長くなるほど、ポイントが減っていきます。[スタート] メニューには、ポイント数の最も多いプログラムから表示されます。簡単ですね。これは、わかりにくい選択アルゴリズムではありません。この基本ルールを適用したうえで調整を行いますが、この調整が非常にわかりにくい部分です。

調整の前に、基本ルールについてもう少し詳しく説明しておきます。このルールでは、ショートカットではなく、プログラムの起動が対象になっていることに注意してください。プログラムの中には複数のショートカットをインストールするものがありますが、プログラムの起動にどのショートカットを使用したかは問題になりません。どれも同じ実行ファイルを指しているのであれば、そのプログラムは異なるショートカットが使われてもポイントを累積できます。

[スタート] メニュー

[スタート] メニュー(画像を拡大するには、ここをクリックします)

これは、[スタート] メニューから実行されなかった場合でも、エクスプローラから実行している限り、プログラムがポイントを獲得することを意味します。フォルダを開き、実行可能ファイルをダブルクリックして、プログラムを手動で実行した場合も、プログラムはポイントを獲得し、結果として [スタート] メニューの最初の領域に表示されるようになる可能性があります。

さて、[スタート] メニューの最初の領域に表示されるだけの十分なポイントをプログラムが獲得できたら、Windows® はそのプログラムを指しているショートカットが複数ある場合にどのショートカット アイコンを表示するかを決めなければなりません。この場合は、順当に、最も頻繁に使用されたショートカットが表示されます。

調整の一環として、一部のプログラムがこの一覧から除外されます。たとえば、[スタート] メニューに常に表示するように登録済みのプログラムは、同じプログラムのアイコンを 2 つ表示しても意味がないので除外します。結局、そのプログラムは、頻繁に実行するため [スタート] メニューに登録しているのですから。

別の調整ステップでは、"ノイズ" を除外します。メモ帳やワードパッドなど、一般的なヘルパー プログラムへのショートカット (Readme ファイルを表示するためのショートカットなど) になっているため、表示されていたプログラムが多数ありました。このようなショートカットは除外します。つまり、メモ帳のショートカットは対象から除外する必要がありました。なお、アプリケーションのレジストリに NoStartPage 値を作成することで、プログラムが [スタート] メニューの最初の領域に含まれないように登録することもできます。

基本ルールでは、一度起動したら実行し続けたままになるプログラムについても考慮されていませんでした。基本ルールの厳密な解釈に従うと、このプログラムは起動時にポイントを獲得しても、時間が経過するとこのポイントを失うことになります (この場合の "頻繁に" は、"ものすごく長い時間" のかなり控え目ないい方です)。そこで、もう 1 つ次のようなルールを追加しました。プログラムが連続して実行されている日数だけ、プログラムはポイントを獲得します。このルールは、このようなプログラムがポイント獲得競争からはじきだされることなく、実際によく起動される他のプログラムを圧倒しない程度のルールです。結局、そのプログラムを常時実行しているのであれば、これを頻繁に起動する必要はありません。

Windows Vista™ では、さらにいくつか調整ルールが追加されました。たとえば、[スタート] メニューから実行されたことがないプログラムのショートカットを、複数のショートカットの中から選択して表示する場合、コマンド ライン パラメータのないショートカットを優先するようになりました。また、一番最近に実行したプログラムは、そのポイント数に関係なく、必ず一覧に表示されるようになりました。

Raymond Chen は自分の Web サイト The Old New Thing および同じタイトルの書籍 (Addison-Wesley、2007) で、Windows の歴史と Win32 プログラミングについて扱っています。皆様からのご意見を大切にしており、受け取った順番に回答しています。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.