Programming Field

Windows レジストリ 解剖記

このページではWindowsのレジストリについて扱っています。Windowsの重要な設定も含まれているため、レジストリに対する操作は慎重に行ってください。レジストリの操作にあまり慣れていないときは事前のバックアップを強く推奨します。また、不用意にいろいろなデータを削除するとWindowsが起動しなくなる原因となります。なお、このページで生じた問題の責任は負いかねます。

目次

HKEY_CURRENT_USER

このキーには「現在ログインしているユーザー」で適用される設定が含まれています。一部のキーについては、HKEY_LOCAL_MACHINE以下にも同じキーと値が設定できますが、一部を除きHKEY_CURRENT_USER内に設定した値が優先して使用されます。

なお、HKEY_USERS内のキーのうち、現在ログインしているユーザーのSIDに一致するキーの中身とHKEY_CURRENT_USERの中身は一致します。

HKEY_CURRENT_USER 以下は様々なデータが記録されるため、上記以外のデータも多数存在します。

Console キー

※ 以下の内容は Windows 7 と Windows 10 で確認しています。それ以外のバージョンでは未確認です。

このキー以下にはコンソールウィンドウの設定が入ります。「コンソールウィンドウ全体の設定」(「既定値」)のほか、コマンドプロンプトやバッチファイルを含むコンソールアプリケーションごとの設定も格納されます。

なお、一部設定はコマンドプロンプトのショートカットファイルにも保存されます。ショートカットファイルに保存されている場合はそちらの内容が優先されます。(優先順位: ショートカットファイル → コンソールプログラムごとの設定値 → HKEY_CURRENT_USER\Console 直下の値(「既定値」) → システム既定値)

※ 以下、「コンソール設定項目」と記述している箇所は、コンソールウィンドウのメニューから「プロパティ」を選んだ時に出る設定画面、あるいはコマンドプロンプトのショートカットにおけるファイルのプロパティで表示される追加項目に対応します。

program-name
コンソールプログラムごとの設定値を置くためのキーとなります。program-name はコンソールウィンドウ表示時のタイトル名(ショートカットファイルに指定がある場合; 無い場合はコンソールプログラムのフルパス名)にある「\」を「_」に置き換えた名前になります。例えばショートカットファイル起動ではないコマンドプロンプトであれば「%SystemRoot%_system32_cmd.exe」になります。
なお、コンソールプログラムがショートカットファイルから起動され、かつ設定値がその中に書き込まれている場合は、ショートカットファイル内にある設定が優先されます。
※ バッチファイルはすべてコマンドプロンプト扱いになります。
(val) (settings...)
サブキー以下に設定できる内容は後述する設定値すべてになります。サブキー以下の設定値が存在する場合はその値が優先して使用され、存在しない場合は HKEY_CURRENT_USER\Console 直下の値(「既定値」)が使用されます。
(val) ColorTableXX
コンソール上の色のマッピングを表す値です。XX は 00, 01, 02, ..., 09, 10, 11, ..., 15 のいずれかであり、コンソール設定項目「画面の色」に並べられている色の左から 00, 01, ... に対応しています。
設定する値はWindows RGB値である、「赤 + (緑 × 256) + (青 × 65536)」(16進数で下から2桁ずつ赤・緑・青)の計算結果となります。
(val) CtrlKeyShortcutsDisabled
[Windows 10] コンソールウィンドウ上で「Ctrl」キーを伴うショートカットを無効にするかどうかを指定します。従来は「Ctrl」キーを押しながら通常キーを入力すると制御文字の入力が可能ですが、Windows 10では既定で制御文字入力の代わりに特定のメニュー項目に対するショートカットとして機能するようになっています。これを無効にする場合は「1」を、有効にする場合は「0」を指定します。
(val) CurrentPage
コンソールウィンドウのメニューから「プロパティ」を選んだ時に出る設定画面における、最初に表示するページの番号を指定します(0 が左端)。
(val) CursorSize
コンソールウィンドウの入力(プロンプト)を促す点滅カーソルのサイズを指定します。
※ この項目はコンソール設定項目にありませんが、ショートカットファイルには保存されます。
(val) EnableColorSelection
1を設定すると、コンソールウィンドウで範囲選択を行った後、その状態で「Ctrl+数字(0~9)」で背景色を、「Alt+数字(0~9)」で文字色を変更する機能を有効化します。
※ この項目はコンソール設定項目にありません。
(val) ExtendedEditKey
[Windows 10] コンソールウィンドウ上で「Shift+矢印キー」や「Ctrl+A」などで即座に範囲選択を行う機能を有効化するかどうか指定します。「1」で有効化、「0」で無効化されます。コンソール設定項目「テキスト選択キーを拡張する」に対応します。
※ Windows 7 にもレジストリ設定は存在しますが効果は無いようです。
(val) ExtendedEditKeyCustom
(不明)
(val) FaceName
コンソールウィンドウで使用されるフォントの名前を指定します。「ラスターフォント」の場合はこの設定値が存在しないか空文字列になります(「FontFamily」の値で判定されます)。
(val) FilterOnPaste
[Windows 10] クリップボードから貼り付ける際に内容のフィルターを行い、貼り付けるテキストに含まれる「“ ”」という引用符(UnicodeにおけるU+201CおよびU+201Dの文字)を「" "」に変換します。コンソール設定項目「貼り付け時にクリップボードの内容をフィルターする」に対応します。
(val) FontFamily
フォントの種類に関する値が入ります。「CONSOLE_FONT_INFOEX」構造体の「FontFamily」値=「TEXTMETRIC」構造体の「tmPitchAndFamily」値に一致します。(詳細は省略します)
(val) FontSize
文字のサイズに関する値が入ります。ラスターフォントの場合は16進数の下4桁が横のサイズ(0x7FFFまで)、上4桁が縦のサイズ(0x7FFFまで)になります。その他のフォントの場合は16進数の上4桁がフォントサイズ(0x7FFFまで)になります。
(val) FontWeight
フォントのウェイト値が入ります。10進数「400」が通常表示、「700」が太字表示になります。
(val) ForceV2
[Windows 10] Windows 10で導入されたコンソールの新機能(範囲選択の拡張やショートカットキーなど)を有効化するかどうかが入ります。「1」で有効化、「0」で無効化されます。コンソール設定項目「従来のコンソールを使う」に対応します(意味が逆になります)。
※ この項目はショートカットファイルに保存されません。
(val) FullScreen
[Windows 8 系まで?] 初期表示をフルスクリーンモードとするかどうかが入ります。「1」でフルスクリーンモード、「0」でウィンドウモードとなります。起動後は Alt+Enter キーで切り替えができます。
※ Windows 10 では常に初期状態がウィンドウモードとなるようです。
(val) HistoryBufferSize
コマンド入力履歴として保持する最大のコマンド数が入ります。コンソール設定項目「コマンドの履歴 → バッファーサイズ」に対応します。
(val) HistoryNoDup
重複するコマンドを入力履歴として保持しないようにするかどうかの設定値が入ります。「1」を指定すると保持しません。コンソール設定項目「コマンドの履歴 → 重複する古い履歴を破棄」に対応します。
(val) InsertMode
最初のコマンド入力モードを「挿入モード」とするかどうかの設定値が入ります。「1」で挿入モード、「0」で上書きモードとなります。コンソール設定項目「編集オプション → 挿入モード」に対応します。起動後はDoskeyコマンドで変更することができます。
(val) LineSelection
[Windows 10] 範囲選択時に行の折り返し選択を有効にするかどうかが入ります。「1」で有効化、「0」で無効化されます。コンソール設定項目「行の折り返し選択を有効にする」に対応します。
有効にすると、範囲選択がボックス型からテキストエディターによくあるような選択形式となり、ウィンドウ末尾で自動的に折り返されているテキストを選択してコピーするとその折り返し位置に改行文字が入らなくなります。
(val) LineWrap
[Windows 10] ウィンドウのサイズ変更時に行の折り返し位置を調整するかどうかの設定値が入ります。「1」で自動調整が行われるようになります。コンソール設定項目「サイズ変更時にテキスト出力を折り返す」に対応します。
(val) LoadConIme
[Windows XPまで?] コンソールウィンドウ起動時に「conime.exe」を起動するかどうかの設定値が入ります。「1」で起動されるようになり、日本語入力などのIMEが使えるようになります。
※ 「conhost.exe」の利用になってから「conime.exe」は不要になっている模様であり、Windows 7 / 10 では「conime.exe」自体が存在しません。そのためこの設定値自体も効果がありません。
(val) NumberOfHistoryBuffers
コマンド入力履歴として保持する内部バッファーの数が入ります。コンソール設定項目「コマンドの履歴 → バッファー数」に対応します。
この「バッファー数」は、コンソールウィンドウ内で実行中のプログラムとは別のプログラムが同一ウィンドウ内で起動した際に、そのプログラムに対してもコマンド入力履歴(履歴バッファー)を作るかどうかに関係します。例えばコマンドプロンプトに対する NumberOfHistoryBuffers を「2」にしてコマンドプロンプトを起動した場合、そこから同一コンソールウィンドウ内で実行するサブプログラムでも独立した入力履歴を扱うことができますが、そのサブプログラムがさらに別のプログラムを起動した場合、入力履歴は使えなくなります。
(val) PopupColors
範囲選択を行った箇所の表示色を表す設定値が入ります。コンソール設定項目「画面の色」で設定できる「ポップアップの文字」および「ポップアップの背景」に対応します。
この値は16で割った余り(下位4ビット)が文字色、16で割った商の整数部分を16で割った余り(下位8ビットのうちの上位4ビット)が背景色となります。(245 = 0xF5 の場合は文字色が「5」、背景色が「15」となり、この数値を ColorTableXXXX 部分に適用して得られるRGB値、つまり文字色が ColorTable05、背景色が ColorTable15 となる色が利用されます。)
(val) QuickEdit
初期状態を「簡易編集モード」とするかどうかの設定値が入ります。「1」で簡易編集モード、「0」で通常モードとなります。コンソール設定項目「編集オプション → 簡易編集モード」に対応します。
簡易編集モードではマウスクリックが即座に範囲選択になるため、マウスクリックを必要とするコンソールプログラムではマウスが利用できなくなります。
(val) ScreenBufferSize
スクリーンバッファーサイズに関する値が入ります。16進数の下4桁が横幅のサイズ(0x7FFFまで)、上4桁が縦幅のサイズ(0x7FFFまで)になります。コンソール設定項目「画面バッファーのサイズ」に対応します。
この値はウィンドウのサイズにかかわらず最大の桁数・行数を指定する設定値になります。コンソール設定項目からは最大「9999」までが入力できますが、設定値上はそれぞれ「32767」まで設定できます。また、起動後は「mode CON」でも設定変更することができます。
(val) ScreenColors
コンソール画面上の文字と背景の色を表す設定値が入ります。コンソール設定項目「画面の色」で設定できる「画面の文字」および「画面の背景」に対応します。
この値は16で割った余り(下位4ビット)が文字色、16で割った商の整数部分を16で割った余り(下位8ビットのうちの上位4ビット)が背景色となります。(7 の場合は文字色が「7」、背景色が「0」となり、この数値を ColorTableXXXX 部分に適用して得られるRGB値、つまり文字色が ColorTable07、背景色が ColorTable00 となる色が利用されます。)
(val) ScrollScale
[Windows 10] Shiftキーを押しながらマウスホイールでスクロールしたときの移動量を倍率で指定するようです。(「2」で一画面分?)
(val) TrimLeadingZeros
範囲選択モードでダブルクリックして範囲選択を行う際、単語の先頭にある「0」文字を範囲選択から除外するかどうかの設定値が入ります。「1」を指定するとダブルクリック時(連続する)「0」文字をスキップしてその直後の文字を選択範囲の先頭とするようになります。
(val) WindowAlpha
[Windows 10] コンソール画面の透過率を示す設定値が入ります。コンソール設定項目「画面の色 → 不透明度」に対応します。設定可能値は 77~255 の間で、これを 255 で割った値が不透明度の割合になります。(30% を下回る値である 76 以下は無視されます。)
(val) WindowPosition
コンソールウィンドウの初期ウィンドウ位置に関する値が入ります。16進数の下4桁が横方向の位置(x座標、0x7FFFまで)、上4桁が縦方向の位置(y座標、0x7FFFまで)になります。コンソール設定項目「ウィンドウの位置」に対応します。
値が存在しない場合は全体設定(HKEY_CURRENT_USER\Console 直下の WindowPosition 値)が、全体設定が存在しない場合はシステムの既定位置で表示されます。
※ プログラムの個別設定としてのコンソール設定項目「システム設定を使う」がONとなっている場合、既定値のコンソール設定項目「システム設定を使う」がOFFであるとそのウィンドウ位置が使用されます。すなわち、この場合は「システム設定」ではなく「既定値」が使われることになります。
(val) WindowSize
コンソールウィンドウのウィンドウサイズに関する値が入ります。16進数の下4桁が横幅のサイズ(0x7FFFまで)、上4桁が縦幅のサイズ(0x7FFFまで)になります。コンソール設定項目「ウィンドウのサイズ」に対応します。
(val) WordDelimiters
単語区切り文字を設定します。区切りとなる文字を1文字ずつ連続して設定します。単語区切り文字は、カーソルを「Ctrl+左右キー」で移動する場合に使用されます(既定値はスペース1文字のみとなります)。
[Windows 10] ExtendedEditKey を「1」に設定している場合は、「Ctrl+Shift+左右キー」での範囲選択における単語区切り文字としても用いられます。
※ 既定値はDWORD値で「0」となっていますが、設定変更する場合は文字列値で指定する必要があるため、一旦削除してから改めて値を作る必要があります。
※ この設定値はプログラムごとの設定値として設定することやショートカットファイル内に設定することができません。HKEY_CURRENT_USER\Console 直下にのみ設定することができます。

Software\Classes キー

このキーはユーザー固有で設定される関連付け設定やCOM/OLEオブジェクトの情報が入ります。

書式はすべてHKEY_CLASSES_ROOTと同じであるため、詳細はHKEY_CLASSES_ROOTのページをご覧ください。

なお、HKEY_LOCAL_MACHINE\Software\Classes と同じ設定名がある場合、HKEY_CURRENT_USER 側の設定が優先されます。

Software\Microsoft\Command Processor キー

このキーはコマンドプロンプトの既定の設定が収められます。

  • Software
    • Microsoft
      • Command Processor
        • (val) AutoRun = "command"
        • (val) CompletionChar = d "value"
        • (val) DefaultColor = d "value"
        • (val) DelayedExpansion = d "value"
        • (val) EnableExtensions = d "value"
        • (val) PathCompletionChar = d "value"
(val) AutoRun
Cmd.exeを実行する際に最初に実行するコマンドを文字列で指定します。バッチファイルを指定した場合はそのバッチファイルが実行されます。
HKEY_LOCAL_MACHINE側にも同じ値が定義されている場合は、先にHKEY_LOCAL_MACHINEに指定されているコマンドが実行され、その後にHKEY_CURRENT_USER側に指定されているコマンドが実行されます。
(val) CompletionChar
ファイル名(ディレクトリ名も含まれます)の自動補完を行う場合の文字のASCII文字コードをDWORD値で指定します。ただし有効な値は0から0x20までで、0と0xD(CR文字)・0x20(スペース文字)のどれかを指定すると無効になります。タブ文字を使う場合は「9」を指定します。
なお、タブ文字以外の文字を指定したい場合は Ctrl キーを押しながら対応する文字(「6」の場合は「Ctrl+F」)を入力します。
(val) DefaultColor
コマンドプロンプト既定の色を16進数で指定します。1の位に前景色(文字の色)、10の位に背景色を指定します。色の対応は「DOS コマンド一覧」「Color」をご覧ください。
0を指定した場合はシステム既定の色を使用します。
(val) DelayedExpansion
環境変数の遅延展開機能を既定でONにするかどうかを指定します。1を指定するとON、0を指定するか値を作成しない場合はOFFになります。Cmd.exeの「/V」オプションが指定されている場合はそちらが優先されます。また、「Setlocal」コマンドで動的に変更することもできます。
(val) EnableExtensions
コマンド拡張機能を既定でONにするかどうかを指定します。1を指定するか値を作成しない場合はON、0を指定するとOFFになります。Cmd.exeの「/E」オプションが指定されている場合はそちらが優先されます。また、「Setlocal」コマンドで動的に変更することもできます。
(val) PathCompletionChar
ディレクトリ名の自動補完を行う場合の文字のASCII文字コードをDWORD値で指定します。ただし有効な値は0から0x20までで、0と0xD(CR文字)・0x20(スペース文字)のどれかを指定すると無効になります。タブ文字を使う場合は「9」を指定します。
CompletionCharと同じ値を指定した場合は効果がありませんが、違う値を指定した場合はディレクトリ名のみの補完を行うことができるようになります。

Software\Microsoft\Windows\CurrentVersion\Explorer\AutoComplete キー

このキーは、AutoComplete (オートコンプリート) に関する情報が収められます。

  • Software\...\Explorer\AutoComplete
    • (val) Append Completion = "yes|no"
(val) Append Completion
この値を「yes」にすると、オートコンプリートで一覧を表示する際、リストの一番上に来る文字列を自動的に補完します。反転状態で補完するため、そのまま入力を続けるとその部分は上書きされます。

Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts キー

このキーは、(ユーザー別の)「アプリケーションから開く」や「既定のプログラム」に関するデータを扱っています。

  • Software\...\Explorer\FileExts
    • .ext = <description>
      • OpenWithList
        • (val) MRUList = "abc"
        • (val) a = <program1>
        • (val) b = <program2>
        • (val) c = <program3>
          .
          .
          .
      • OpenWithProgids
        • (val) <ProgID> = none
      • UserChoice
        • (val) Hash = <hash>
        • (val) ProgId = <ProgID>
(val) OpenWithList
このキーには、「ファイルを開くアプリケーションの選択」でユーザーが参照したアプリケーションなどが登録されていきます。
(val) MRUList
a、b、c などに登録されているプログラムの並び替え順序を表します。「bca」なら b、c、a の順に表示されます。
(val) a, b, c, ...
一覧に表示するプログラムの名前(ファイル名)を指定します。
(val) OpenWithProgids
[Windows Vista 以降?] (過去に設定された関連付け種別が入るとみられますが用途は未調査です。)
(val) UserChoice
[Windows Vista 以降?] 「既定のプログラムの選択」で選択された関連付けの情報が入ります。ルートキー(「HKEY_CURRENT_USER」)の通りこのデータはユーザー別の情報となり、HKEY_CLASSES_ROOT以下に設定されている拡張子別の情報よりも優先されます。
この中には「ProgId」として実際に選択された関連付けに対応する ProgID 値(厳密には HKEY_CLASSES_ROOT からの相対パス)と、その値に関連するハッシュ値が格納されます。すなわち、UserChoiceが存在する場合は、(このユーザーにおいて)対象の拡張子を持つファイルに対するアクション実行やアイコン取得が要求されたとき、ここに含まれる ProgID を利用して処理が行われます。
なお、「既定のプログラムの選択」でリストアップされるプログラムは HKEY_LOCAL_MACHINE\Software\RegisteredApplicationsHKEY_CLASSES_ROOT\Applications の情報が用いられます。
[Windows 10?]UserChoice」内のデータはシステムによって管理されるため手動での変更・削除ができません(管理者権限で変更できない厳しい権限が設定されています)。ただし親キーとなる「UserChoice」そのものは削除できます。