レジストリで設定した内容を Windows に即時に反映させる必要がある時に使用します。
例えばショートカットのファイルは拡張子 .lnk が付いているのですが、一般的に表示される事はありません。これを表示させるには簡単で、手動でレジストリの コンピューター\HKEY_CLASSES_ROOT\lnkfile の中のエントリである NeverShowExt をAllwaysShowExt に名称変更すると .lnk が表示されるようになります。但しすぐには反映されないのでエクスプローラを再起動して即座に反映させます。
' ********************************************************** ' エクスプローラ(explorer.exe) の再起動 ' ********************************************************** strTarget = "explorer.exe" ' 起動用 Set WshShell = CreateObject( "WScript.Shell" ) ' WMI用 Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") ' いったん終了させます Set colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = '"&strTarget&"'") For Each objProcess in colProcessList on error resume next ' 通常はこれで終了されるはず objProcess.Terminate() if Err.Number <> 0 then ' もし終了できなかった場合の強制終了 Call WshShell.Run("taskkill /F /PID " & objProcess.ProcessId, 0 ) end if on error goto 0 Next ' 少し待ちます Wscript.Sleep(500) ' エクスプローラを起動 WshShell.Run( strTarget )