実行履歴とレジストリ

 

Windowsでは様々な場面で実行履歴が保存され、ユーザーが過去に編集したり入力した情報を簡単に参照できるようになっています。 とても便利な機能ですがこれらのデータは一体どこに保存されているのでしょうか?

実は実行履歴の多くはレジストリデータと密接な関係にあるのです。 実行履歴はユーザごとの個別情報です。 と、言うことは・・・データのあるのはHKEY_CURRENT_USERというメインキーの下層ではないか?といった想像はつきますよね。 では具体例を見ていきましょう。

 

[ファイル名を指定して実行]の履歴

[スタート]-[ファイル名を指定して実行]と選択すると、[ファイル名を指定して実行]のダイアログが表示されます。 このダイアログ中の[名前(O)]の部分はコンボボックスになっていて実行履歴を26個まで記憶してくれています。

[ファイル名を指定して実行]のダイアログを開いてみましょう。 ここに上記画像のようにあらかじめ regedit という文字列が表示されていたとします。 この文字列がレジストリデータのどこに保存されているのか検索してみましょう。

  1. まずはレジストリエディタを起動します。
  2. 続いて左側ウインドウでHKEY_CURRENT_USERを開きます。
  3. [編集]-[検索]と選択して、検索する値を regedit にして検索を実行してみます。

すると、検索にヒットした値の中に次のような部分があります。

これがレジストリ内で[ファイル名を指定して実行]の履歴が保存されている場所ですね。 キー名から、履歴の保存されている具体的な場所はHKEY_CURRENT_USER→Software→Microsoft→Windows→CurrentVersion→Explorer→RunMRUである事がわかりました。

この部分は、[ファイル名を指定して実行]のダイアログを利用するたびに、その情報がリアルタイムに更新されながら保存されていきます。

レジストリエディタの右側画面に注目すると、保存されている値(文字列)の名前はabc順につけられています。 最初に 「ダイアログ中の[名前(O)の部分はコンボボックスになっていて実行履歴を26個まで記憶してくれています。」 と書いた理由がおわかりだと思います。 保存される値には a〜z までの名前が順番に割り振られていきますので、最大26個というわけです。

 

[アドレスツールバーの履歴 ]

Microsoft Internet Explorer4.0以上のバージョンをインストールするとシェルが拡張されて、タスクバーにアドレスツールバーを表示させることができるようになります。 このアドレスの入力欄はコンボボックスになっていて、以前タイプしたアドレスを記憶してくれています。

先ほど[ファイル名を指定して実行]ダイアログ中の[名前(O)]の部分にある実行履歴を調べたとき、右側ウインドウには a〜z までの名前が割り振られた値(文字列)が保存されていましたが、同じ箇所に url1〜url* といった名前の付けられた値(文字列)が保存されていたことに気づかれた事と思います。

  • アドレスツールバーを利用したことがない方の場合には、当然の事ながらこのような値は保存されていません。

この url1〜url* といった値(文字列)がアドレスツールバー利用時に保存されている実行履歴です。 つまり、アドレスツールバーの実行履歴が保存されている具体的な場所(キー名)もまた、HKEY_CURRENT_USER→Software→Microsoft→Windows→CurrentVersion→Explorer→RunMRUというわけです。

 

[Internet Explorerの[アドレス]バーの履歴 ]

さて、Microsoft Internet Explorerのアドレス欄もコンボボックスになっていて、実行履歴が保存されています。 この部分はいったいどこに保存されているのでしょうか・・・

探し方は・・・もう何となくわかりましたか?

  • ユーザーごとの情報である → HKEY_CURRENT_USERというメインキーにあるかも・・・
  • Microsoft Internet Explorerに関する情報である → Software→Microsoft→Internet Explorerという階層にデータは保存されているかも・・・

こんな具合で、レジストリの事をなんとなくでも知っていると予想をつける事だってできますよね。 では実際にレジストリエディタを起動させて HKEY_CURRENT_USER→Software→Microsoft→Internet Explorer を開いてみます。

すると Internet Explorer キーの下層に TypedURLs というサブキーがありました。 わかりやすいキー名です。(笑) そう、ここにMicrosoft Internet Explorerのアドレス欄の実行履歴が保存されているのです。

右側画面に注目すると、実行履歴は url1〜url* といった値(文字列)で保存され、それぞれの値のデータに具体的なURLアドレスが保存されている事がわかります。

 

[アプリケーションごとに保存されている実行履歴 ]

アプリケーションはその実行履歴を保存してくれているものも多数存在します。 具体例を挙げた方が理解しやすいと思いますので、実際の例を参照しながらみていきましょう。

Windows95以降にはWordpadというリッチテキスト形式に対応したエディタが標準添付されています。 WordPadを起動して[ファイル]メニューをクリックすると下図のように実行履歴が表示されています。

探し方はこれまでと同様に「まずは予想をつけてから」といった形にしてみましょう。 検索をかけても構いませんが、予想しながらの方がレジストリの構造を覚えるのに役立ちます。

  • ユーザーごとの情報である → HKEY_CURRENT_USERというメインキーにあるかも・・・
  • Microsoft Windowsに標準添付のアプリケーションである → Software→Microsoft→Windowsという階層にあたりをつけてみよう・・・
  • Wordpadに関する実行履歴である → どこかに Wordpad という名前のサブキーはないだろうか・・・

レジストリエディタを起動して予想箇所の周辺を探してみると HKEY_CURRENT_USER→Software→Microsoft→Windows→CurrentVersion→Applets→WordPad というキーが見つかりました。 求めるデータはどうやらここに保存されているようです。

WordPad というキーのさらに一階層下のサブキーを眺めると、Recent File Listというキーがあります。 「見つけた!」ということで・・・Wordpadの実行履歴は HKEY_CURRENT_USER→Software→Microsoft→Windows→CurrentVersion→Applets→WordPad→Recent File Listに保存されていることがわかったわけです。

 

[最後に・・・]

このようにWindows上でお目にかかるさまざまな実行履歴はレジストリデータとして保存されているものがたくさんあります。 もちろん中には [最近使ったファイル]のように、Windowsフォルダ内にサブフォルダを作成し(この場合はWindows\Recent)、そこにショートカットとして情報を保存していたりする場合もあります。

ただ、様々な場面で出会う実行履歴がレジストリ内に保存されている場合が多数存在する事を理解し、レジストリ内のどの位置に保存されているのかを知ると、場合によっては消しておきたい実行履歴を手動で削除することによってエンドユーザーから保護する事も可能であるということを覚えておいた方が何かの時には便利だと思います。

 

 

このコンテンツは、できれば全画面表示でご覧下さい。
*** 左側のメニューから見たい項目を選択して下さい。 ***

 

[レジストリトップページへ]

anfiny@yahoo.co.jp

 

1