2013年3月26日火曜日

レジストリエディタ(regedit.exe)を複数起動する方法


レジストリエディタ ( regedit.exe ) を複数起動する方法

仕事柄レジストリエディタ regedit.exe を起動することが多いのですが、複数同時に起動したいことが多々あります。

同じようなキーをHKEY_LOCAL_MACHINE / HKEY_CURRENT_USERから比較したり
仮想アプリ側から見た場合のレジストリと物理側のレジストリを比較したり
64Bit OSの場合の64Bit版のレジストリと32Bit版のレジストリを比較する場合に
これまでは、1つの regedit のツリーを行ったり来たりし、かなり煩わく感じていました。

そんな悩みは、この起動オプション一発で解決できます。



regedit.exe -m




対応するOSは、Windows XP, Windows Vista ,Windows 7 ,Windows 8
Windows Server 2003 , Windows Server 2008 ,Windows Server 2008R2 , Windows Server 2012です。

実は、Windows2000までは、REGEDT32.exeとREGEDIT.exeの2つが用意されていました。

REGEDT32.exeは、MDI型のレジストリエディタで複数のハイブを同時に表示できる優れものでした。
WindowsXPからREGEDT32.exeは、ファイルこそ残っていますが、実際には
REGEDIT.exeが起動されMDI型の物は、なくなっています。
そのため、-mの起動パラメータを付けて起動することで、複数のインスタンスを起動できるように
なっているんですね。


ThinAppで仮想側のレジストリを参照するために、vRegedit.exeのエントリーポイントを作成する事を推奨していますが、複数起動できるようにするには、Package.iniを以下のようにすればOKです。
※CommandLineを追加する


[vRegedit.exe]
Source=%SystemRoot%\regedit.exe
CommandLine=%SystemRoot%\regedit.exe -m
Shortcut=xxxx.dat
Disabled=0



余談:私も2ヶ月くらい前まで-mのオプションの存在を知りませんでした。教えてくれたMSDさんありがとう。


参考:
http://kmassue.blogspot.jp/2013/02/blog-post.html

http://blogs.msdn.com/b/tsmatsuz/archive/2009/04/17/64-bit-wow-32bit-system-file-registry.aspx
http://support.microsoft.com/kb/141377/ja