2018年01月28日


VBScript : エクスプローラ(explorer.exe) の再起動

目的としては、システムへの変更を作業環境に反映させる為に行います。

例えば、ショートカットのファイルは拡張子 .lnk が付いているのですが、一般的に表示される事はありません。これを表示させるには簡単で、手動でレジストリの HKEY_CLASSES_ROOT\lnkfile の中のエントリである NeverShowExtを名称変更すると、そのエントリが無い事になって .lnk が表示されるようになります。但し、すぐには反映されないので、エクスプローラを再起動します。するとすぐに反映されようになっています。

※ 名称変更はすぐ戻せるように、名前(NeverShowExt)の最初か最後に _ を付加しておくといいと思います


右端のアイコンよりダウンロードできます
' **********************************************************
' エクスプローラ(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 )






タグ:プロセス WMI
posted by at 22:16 | Comment(0) | ツール | このブログの読者になる | 更新情報をチェックする


この記事へのコメント
コメントを書く
お名前:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。