前提・実現したいこと
VBA or VBSでウィンドウを表示しないでコマンドの標準出力の結果を取得する方法はあるのでしょうか。
何か関連する情報があれば教えてください。
※タイトル変えました。HTA→VBA or VBS
試したこととか
(1)
以下は、ウィンドウが表示されるパターンのHTAです。
WScript.ShellでExecを使って終了を待ってから標準出力の結果を取得しています。
※VBScriptの処理の部分をVBAにコピーして少し修正すればVBAでも動作します。
HTA
1<html> 2<head> 3 <title>Ping</title> 4<body> 5<input type="button" name="button1" value="Ping実行"> 6<br> 7<label id='result'></label> 8 9<script language="VBScript"> 10 sub button1_onClick 11 Dim t_Wsh 12 Set t_Wsh = CreateObject("WScript.Shell") 13 Dim t_Exex 14 Set t_Exex = t_wsh.Exec("ping www.yahoo.co.jp") 15 Do While t_Exex.Status = 0 16 t_Wsh.Run "Timeout.exe /t 1", 0, True 17 Loop 18 result.innerHtml=Replace(t_Exex.StdOut.ReadAll,vbcrlf,"<BR>") 19 Set t_Exex = Nothing 20 Set t_Wsh = Nothing 21 22 End sub 23</script> 24</body> 25</html>
(2)
runで実行してクリップボードに結果を入れて、それを取得
というやり方がネットに記載してありましたが、クリップボードって
Excelに握られてたりする時も問題ないのでしょうか…
どの程度信頼性があるのかよくわかりません。
ファイルへリダイレクトした方が信頼性は高い気がします。
(追記 2021/04/15)
APIでパイプから取得ってのを試しています。
radianさんに紹介されたリンク先のコードに少し手を入れて
stdoutとstderrを受け取れるようにしたコードで試している「つもり」です
結果がいまいちしっくりこない。なぜurlだとpingが飛ばないのか
なぜipでpingした場合、一部情報が欠落しているのか。謎です。
結果が以下の通りです。
ping www.yahoo.co.jpの結果 STDOUT ping 要求ではホスト www.yahoo.co.jp が見つかりませんでした。ホスト名を確認してもう一度実行してください。 STDERR RESULT 1 ping 183.79.217.124の結果 STDOUT に ping を送信しています 32 バイトのデータ: 183.79.217.124 からの応答: バイト数 =32 時間 =5ms TTL=55 183.79.217.124 からの応答: バイト数 =32 時間 =4ms TTL=55 183.79.217.124 からの応答: バイト数 =32 時間 =4ms TTL=55 183.79.217.124 からの応答: バイト数 =32 時間 =4ms TTL=55 ?? の ping 統計: パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、 ラウンド トリップの概算時間 (ミリ秒): 最小 = 4ms、最大 = 5ms、平均 = 4ms STDERR RESULT 0
上記はwindows8,office 2016(64bit)にてテストしています。
補足情報(FW/ツールのバージョンなど)
os windows10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/15 01:06
退会済みユーザー
2021/04/15 01:27
2021/04/15 01:37
2021/04/15 12:17
2021/04/15 21:53 編集
2021/04/15 22:48 編集
退会済みユーザー
2021/04/15 23:25 編集
2021/04/15 23:34 編集
退会済みユーザー
2021/04/16 01:48 編集
2021/04/16 22:52
退会済みユーザー
2021/04/17 02:13 編集
2021/04/17 03:28
退会済みユーザー
2021/04/17 04:32 編集
2021/04/17 05:00
退会済みユーザー
2021/04/17 09:41 編集
2021/04/17 11:12
退会済みユーザー
2021/04/17 11:32
2021/04/17 12:05
2021/04/17 18:21