SQLの窓 イラストAC フリー素材

2013年08月23日

なんらかの設定処理でレジストリのどこが変わったかチェックする



かなり昔からあるレジストリ比較アプリケーションである RegDiff は、コマンドラインから実行できるので、VBScript を使って自動で比較結果のテキストを作成できます。

アプリケーションのインストール情報は複雑すぎて、慣れた人でないとチェックできませんが、レジストリのエントリが一つだけならば、簡単に抽出できます(目的のヒントになるかもしれません)。

それでも、余計なデータはたくさんあるので、全く知らない人には無理です。もともと、使用する自信のある人のみが使えるアプリケーションです。

❶ Regdiff と同じディレクトリにこのスクリプトを置く

❷ まずは実行し、メッセージボックスが表示されたら(解りにくいのでタスクバーに注目して下さい)レジストリが変更されるであろう処理を行ってから、OK ボタンで処理を続行します。

❸ 最後に result.txt が作成されるので、その中の情報より必要な情報をチェックする事ができます( 中間ファイルは削除していますが、残したい場合は スクリプト内の DEL の部分を削除するかコメントにします )
Set WshShell = CreateObject( "WScript.Shell" )

Set Fso = CreateObject( "Scripting.FileSystemObject" )

strCurPath = WScript.ScriptFullName
Set obj = Fso.GetFile( strCurPath )
Set obj = obj.ParentFolder
strCurPath = obj.Path

k1 = "HKEY_CLASSES_ROOT"
k2 = "HKEY_CURRENT_USER"
k3 = "HKEY_LOCAL_MACHINE"

Call WshShell.Run( "regedit /e " & strCurPath & "\" & k1 & ".001 " & k1, , True )
Call WshShell.Run( "regedit /e " & strCurPath & "\" & k2 & ".001 " & k2, , True )
Call WshShell.Run( "regedit /e " & strCurPath & "\" & k3 & ".001 " & k3, , True )

MsgBox("処理後 OK で継続   ")

Call WshShell.Run( "regedit /e " & strCurPath & "\" & k1 & ".002 " & k1, , True )
Call WshShell.Run( "regedit /e " & strCurPath & "\" & k2 & ".002 " & k2, , True )
Call WshShell.Run( "regedit /e " & strCurPath & "\" & k3 & ".002 " & k3, , True )

Call WshShell.Run( "REGDIFF " & strCurPath & "\" & k1 & ".001 " & strCurPath & "\" & k1 & ".002 " & k1 & ".diff", , True )
Call WshShell.Run( "REGDIFF " & strCurPath & "\" & k2 & ".001 " & strCurPath & "\" & k2 & ".002 " & k2 & ".diff", , True )
Call WshShell.Run( "REGDIFF " & strCurPath & "\" & k3 & ".001 " & strCurPath & "\" & k3 & ".002 " & k3 & ".diff", , True )

Call WshShell.Run( _
	"cmd.exe /c copy " _
	& strCurPath & "\" & k1 & ".diff + "  _
	& strCurPath & "\" & k2 & ".diff + " _
	& strCurPath & "\" & k3 & ".diff result.txt", 0, True )

Call WshShell.Run( "cmd /c del " & strCurPath & "\*.001", 0, True )
Call WshShell.Run( "cmd /c del " & strCurPath & "\*.002", 0, True )
Call WshShell.Run( "cmd /c del " & strCurPath & "\*.diff", 0, True )

'Call WshShell.Run( """C:\Program Files\tpad092\TeraPad.exe"" result.txt", , True )


変更履歴
2008-10-17 : 初回投稿
2013-08-23 : VBScript 内容の修正( スクリプトのあるディレクトリの取得を追加 )



【VBScriptの最新記事】
posted by at 2013-08-23 01:02 | VBScript | このブログの読者になる | 更新情報をチェックする