前提・実現したいこと
HTAで、ボタンを押したときにエクスプローラーを再起動させたいです。
batファイルでは問題なく動くため、その内容をHTAに移行しました。
発生している問題・エラーメッセージ
"start explorer.exe" だと動作せずエラーが出ます。
「指定されたファイルが見つかりません」と出ます。
startをつけただけで、上手く動作しないのは良く分かりません。
また、"explorer.exe"だとエクスプローラーが起動します。
しかし、エクスプローラーが終了して背景が真っ黒になっているのに
前面にエクスプローラーが開くだけで再起動にはなっていません。
batファイルと動作が違うのは困るので、どうにか同じにしたいです。
また、ここには記載していないですが
他にもexeをRunで起動させたり終了させたりしているのですが
上手く行ったりいかなかったりとバラつきます。
WshShell.Run "TASKKILL /F /IM explorer.exe", 1, True
上記と同様に、「1」と記載して完了待ちをしているのですが
それが効いてないようにも思います。
Windows10だと上手くいかないとかあるのでしょうか。
WScriptでSleepも試してみようと思ったのですが
VBSでググッてコピペしたSleepもエラーが出て動作しないため検証できていません。
こちらについても情報があれば欲しいです。
該当のソースコード
bat
1'test.bat 成功例 2TASKKILL /F /IM explorer.exe 3start explorer.exe
VBS
1<!--TEST.htaファイル--> 2<html> 3<head> 4 <title>TEST</title> 5</head> 6<body> 7 <input type="button" value="エクスプローラ終了" onclick="explorerEnd()"><BR><BR> 8 <input type="button" value="エクスプローラ起動" onclick="explorerStart()"><BR><BR> 9 <BR><BR> 10</body> 11 12Sub explorerRestart() 13 Dim WshShell 14 Set WshShell = CreateObject("WScript.Shell") 15 WshShell.Run "TASKKILL /F /IM explorer.exe", 1, True 16 WshShell.Run "explorer.exe", 1, True 17End Sub 18 19 20 21Sub explorerEnd() 22 Dim WshShell 23 Set WshShell = CreateObject("WScript.Shell") 24 WshShell.Run "TASKKILL /F /IM explorer.exe", 1, True 25End Sub 26 27Sub explorerStart() 28 Dim WshShell 29 Set WshShell = CreateObject("WScript.Shell") 30 WshShell.Run "explorer.exe", 1, True 31End Sub
試したこと
batファイルで実行してみた ⇒ 問題なし
htaファイルで実行して見た ⇒ 上手くいかない
補足情報(FW/ツールのバージョンなど)
Windows10
Windows7/10両方で利用できるものにしたいと思ってます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/18 23:51
2021/08/20 09:58 編集