レジストリ関連

レジストリには大切な設定が保存されているので、下手にいじるとWindowsさえ起動できなくなってしまいます。 ですからよくレジストリをいじる前にかならずレジストリのバックアップをしておくことが必要です。 T-Filesのトップページにも書いてありますが、ここで紹介したものを実際に実行するのは各自の責任で行ってください。 何か不具合が起きても私は一切責任を負いませんので、あらかじめご了承ください。

1 拡張子とレジストリ
2 レジストリエディタ
3 レジストリをいじって関連付けしよう!

1 拡張子とレジストリ

拡張子とは・・・?
拡張子というものがなんだかわからない方はいらっしゃいますか?
多分皆さん知ってると思いますが、一応簡単に説明しておくとファイル名の後ろのほうについてる“.(ピリオド)”以降のことを拡張子と言います・・・ってこんなんでわかるのかな(笑)
たとえば“test.txt”の“.txt”とか“index.htm”の“.htm”とか。
これは何かと言ったらファイルの種類を識別するようなもので、この拡張子によってそのファイルを開いたときに起動するアプリケーションが決まっているのです。

関連付け
さて、普段“.txt”とか“.htm”とかさまざまな拡張子のファイルを開こうとすると自分で指定したこともないのに適当なアプリケーションが開くようなってますがなぜでしょうか。
ここで出てくるのがレジストリなんですね。
実は(というほどのことではないけど)一般によく使われる拡張子はこのレジストリというところで、“この拡張子はこのアプリケーションで開く”、と最初から設定されているのです。
だからもしこの設定を変えてしまえば、自分で好きなアプリケーションで開くように変更することができるのですね。
また登録されていないような拡張子のファイルがあっても、自分でレジストリに書き込むことによって、これもまた好きなアプリケーションで開くことができるようになります。
このように拡張子とアプリケーションを結びつけることをよく“関連づけ”と言っていますね。

ただし最初にも書きましたが、このレジストリをいじるということはかなり危険なことで、下手にいじるとWindows自体動かなくなってしまうことがあるそうなので実際にやってみようと思っている方は気をつけてくださいね。
何度も言いますが私は責任取りませんよ(笑)


2 レジストリエディタ
ではさっそくレジストリとは実際にどのようになっているのか見てみましょう。
レジストリを見るためにレジストリエディタというものがどのWindowsにも標準でついてます (と言ってもWindows CEは別。CEの場合ものちのち説明するかも・・・。)。
それを使ってレジストリを見てみましょう。

☆レジストリエディタの素早い開き方☆
普通にレジストリエディタのアイコンを探してクリックしても良いのですがそれは面倒なので、普通以下のようにしてレジストリエディタ開きます。

1.Windowsのスタートボタンをクリック。
2.スタートメニューの中の「ファイル名を指定して実行」をクリック。
3.出てきたダイアログボックスのエディットボックスに「regedit」と入力してOKボタンをクリック。

これでレジストリエディタを起動することができました。
下のようなウィンドウが開きましたね?

*注意*
OSのバージョンによって多少異なります。
ここで使用している画像はWindows2000のものですが、例えばWinodwsMeは右側のウィンドウの真ん中にある“種類”というのはありません。



見るだけなら壊れることはないので、実際に中身を見てみましょう。


レジストリを眺めてみよう!
左側のフレームのマイコンピュータの下にフォルダのアイコンがいくつかついていますね。
どの名前も“HKEY_”で始まっていると思います。
これらをレジストリのキーと呼びます。
では、さっそく一番上のキー“HKEY_CLASSES_ROOT”のフォルダアイコンの左の+マークをクリックして見ましょう。
下の図のようにフォルダアイコンがずらっと出てきましたね。
ツリー表示されているのがわかると思います。



これらもすべてキーです。
キーの中にあるキーをその上のキーのサブキーと呼びます。
例えば、“HKEY_CLASSES_ROOT”のすぐ下に見えている“*”と言うのは、“HKEY_CLASSES_ROOT”のサブキーです。


登録されている拡張子
さてさて、これを眺めていると何か気づきませんか?
“HKEY_CLASSES_ROOT”の下に連なっているサブキーを見てみると、どうやらどれも“.(ピリオド)”で始まっています。
これが先ほど説明した拡張子です。
拡張子はこのようにしてレジストリに登録されているのです。

では試しに誰もがみな知っている拡張子を見てみることにしましょう。
どんどん下のほうに下がっていって、“.htm”を見つけてください。
見つけたらそのフォルダアイコンをクリックしてみましょう。
右のウィンドウに何か出てきましたね。



(標準) REG_SZ “htmlfile”
Content Type REG_SZ “text/html”

と出てきていますね。
上の(標準)と言うのはこの拡張子の種類の名前と考えてよいでしょう。
これは必ずしも拡張子に対して固有の名前ではありません。
そしてその下のContent Typeはファイルの種類です。
試しに“.htm”の下の“.html”もクリックしてみましょう。
どうでしょうか?
(標準)もContent Typeも変わりませんね。
ホームページを作ったことがある人はわかると思いますが、“.htm”も“.html”も同じ種類のファイルと考えますよね。
どっちの拡張子を使ってもなんの問題もありません。
同じ名前で同じ種類のファイルなら拡張子も同じにしてひとつにすればいいじゃん!と思いますが、これにはいろいろわけがあるのですね。
それはのちのち覚えていたら説明します(笑)

関連付け
ではいよいよ拡張子とアプリケーションとの関連付けがどのように行われているか見てみましょう。
これには、さっき話した拡張子の(標準)のところのデータ(ファイルの種類の名前)を使っています。
覚えてますか?

(標準) REG_SZ “htmlfile”

でしたね。
では、左のウィンドウでもっともっと下に下がって、“htmlfile”というキーを探してください。
さっき“HKEY_CLASSES_ROOT”の下には拡張子がいっぱい並んでいるって書きましたが、それだけではないのですね。
“h”と入力すると頭が“h”のところまで飛んでくれるのでちょっと楽かもしれません。
“htmlfile”というキーが見つかったら、今度は左のプラスマークをクリックしてみましょう。
なんだかいろいろでてきましたね!
この中で今回見るべきところが、“shell”というサブキーです。
+マークをクリックしてください。
さらにキーがたくさん出てきました。
ここで“open”というサブキーの+をクリックします。
“open”とはファイルを開くということですよ。
その中の“command”というフォルダアイコンをクリックしてみましょう。
そして右側のウィンドウを見てください。
またまた(既定)という文字が出てきましたね。
その右側のデータのところを見てください。
これがなんだかおわかりでしょうか?
そうです、これがアプリケーションです。
アプリケーションのパスが書いてあるのです。
ここのデータは人によって違うと思いますが、たいていの人は“iexplore.exe”つまり、インターネットエクスプローラの実行ファイルがあるパス、あるいはネットスケープの実行ファイルがあるパスになっていると思います。



このようにして拡張子とアプリケーションが関連付けられて、ファイルをクリックしただけでそれにふさわしいアプリケーションが開くわけです。
拡張子とアプリケーションの関連付けと言いながら、これだとなんだか拡張子につけた名前(ここでは“htmlfile”)とアプリケーションとの関連付けという感じですね。
拡張子とアプリケーションをそのまま関連付けてもよいのでしょうが、そうすると“.htm”と“.html”はどちらも同じ種類の拡張子なのに両方別々に関連付けなくちゃいけなくて面倒だからでしょうか。
同じ“htmlfile”という名前をつけてまとめて関連付けしちゃったほうがらくですもんねぇ。

次回は実際にレジストリをいじって関連付けをしてみようと思います。


3 レジストリをいじって関連付けしよう!
とうとうレジストリをいじってみる時間がやってきました。
何度も言いますが実際にやってみたいという方は自分の責任で行ってください。
私は何があっても責任は持ちません(しつこいって?)。

では始めます。

1.登録したい拡張子とそのファイルを準備する
拡張子を関連付けると言っても、既にある拡張子は関連付けされてるからつまらないですね。
ということで新しい拡張子を作ってみましょう。 どんな拡張子でも良いのですが“.toi”という拡張子にしてみます。
で、試しにファイルを作ってみます。
簡単のためにデスクトップ上で右クリックして新規作成でテキストファイルを指定して、ファイル名を“registory.toi”としてみます。
何か警告が出ますが無視します。



今、このファイルをダブルクリックするとどうでしょう。
“ファイルを開くアプリケーションの選択”ダイアログが出てきてしまいますね。
これはなんのアプリケーションとも関連付けられていないからですね。

2.拡張子をレジストリに登録する
拡張子とアプリケーションを関連付けする前に、まずは拡張子をレジストリに登録してあげないといけません。
さっそくやってみましょう。

(1)HKEY_CLASSES_ROOTを右クリックして“新規”を選択、さらに“キー”を選択します。そうするとHKEY_CLASSES_ROOTの配下に新しいフォルダができます。これが新しいキーです。



(2)新しいキーにさきほど自分で決めた拡張子を入力し[Enter]を押します。これで拡張子が登録されました。
(3)新しく登録したキーのフォルダをクリックすると右側に(標準)というのがあらわれますね。さきほどの拡張子“.htm”や“.html”では何が入力されていたか覚えてますか?拡張子の種類の名前でしたよね。ここで新しく種類の名前をつけても良いのですが、まず始めに“.htm”と同じものにしてみましょう。(標準)の上をダブルクリックしてダイアログを出し、値のデータのエディットボックスに“htmlfile”と入力してください。あ、“”はいりませんよ。
(4)さらに“Content Type”も同じように入力しましょう。右のウィンドウで右クリック、“新規”を選択して、さらに“文字列”を選択します。そこで“Content Type”と入力して[Enter]で決定し、“Content Type”をダブルクリックして “text/html”を入力して[OK]ボタンを押します。



3.さきほど作ったファイルを開いてみる
さてさて、まずこれでどうなるか考えてみてください。
だいたい想像がつくと思います。
ではさきほど作ったファイルをダブルクリックして開いてみましょう。
さっきは開きませんでしたが、今度はどうでしょう!
開きますね〜。
ファイルの中身に何も書いていないので何も表示されませんが、ブラウザが立ち上がります。
実はこれで既にアプリケーションと関連付けられたのですね。
“.htm”“.html”そして今登録した“.toi”のように違う拡張子でも、拡張子を直接関連付けるのではなく拡張子の種類の名前を同じにして、それを同じアプリケーションに関連付ければこうなるのです。
例えば“.toi”の拡張子の種類の名前を“htmlfile”ではなく“textfile”にして、“Content Type”を“text/plain”にして、ダブルクリックすればテキストエディタが開くわけです。


でもこれではつまらないですね。
もしも自分の作ったアプリケーションに関連付けたかったらこれじゃだめなのですから。
では次に拡張子の種類のオリジナルな名前をつけてその名前をアプリケーションと関連付けてみましょう。


4.自分の作った拡張子に新しい種類の名前をつける
では、さきほど登録した拡張子のフォルダをクリックして右に出てくる(既定)の値"htmlfile”を自分でつけた名前にしてみましょう。
もうやり方はわかりますね。
では“toifile”にしてみます。
これで新しい種類のファイルができました。



5.関連付けする
では自分で作った拡張子、自分で作った新しい種類のファイルを好きなアプリケーションに関連付けてみましょう。
本当はアプリケーションも自分で作ったものだったらもっとおもしろいのですが、そういうアプリケーションがないので既存のものにします。
さてさて、どのようにして関連付けられていたか覚えてますか?
“htmlfile”キーの下にどのようなサブキーがあったのか思い出してください。
同じようにサブキーをひとつずつ作っていけばよいのです。
ではやってみましょう。

(1)まず“toifile”というキーを作ります。もうわかりますね?“HKEY_CLASSES_ROOT”を右クリックして、新規を選択、さらにキーを選択です。そこに“toifile"と入力します。
(2)次に“toifile”の中に“shell”というサブキーを作らなくてはなりませんね。ここも同じように“toifile”を右クリックして新規を選択、さらにキーを選択して“shell”を入力します。
(3)さらに“shell”の中に“open”サブキーを作成します。
(4)さらに“open”の中に“command”サブキーを作成します。



(5)最後に関連付けるアプリケーションを指定します。これはキーではないので、(1)〜(4)までとは方法が違いますよ。今度は“command”をクリックして右側のウィンドウに出てきた(標準)をダブルクリックします。そして出てきたダイアログに実行したいアプリケーションのパスを指定しましょう。ではノートパッドで開くことにしてみましょうか。
ノートパッドの.exeファイルがある場所を探してみてください。
探したらそのパスを指定します。
私のノートパソコンでは

C:\WINNT\system32\notepad.exe

にあります。
ですから、ダイアログボックスには、



と入力します。
後ろの%1とはなんでしょうか。
これは実行パラメータ、または引数というものです。
プログラムを実行するときにはパラメータを渡すことができるのです。
例えばノートパッドとかワードパッドとかはファイル名を指定します。
このアプリケーションを使ってどのファイルを開くのか指定しなければアプリケーションはどれを開いていいかわからなくなってしまいますね。
だからもしパラメータを指定しないと新規作成で開いてしまうのですよ。
そんなわけでここに%1を加えることによってクリックしたそのファイルが開くようになっています。
%1の前には半角スペースを忘れないで下さいね。
試しに%1をなくしてやってみるとよくわかると思いますよ。
もし%1をなくしたらregistory.toiファイルをダブルクリックしても新規ファイルが開いてしまうはずですから。
さてさて実際に入力できたらさっそくregistory.toiをダブルクリックしてみましょう。



ちゃんとノートパッドで開くことができました。
これでアプリケーションの関連付けは成功です。
作成したregistory.toiにはまだ何も書き込んでないので、何も表示されません。

さてさて、次回は自分で作った簡単なアプリを使って関連付けをしてみます。
お楽しみに〜♪