>>173
JSのメソッドディスパッチ自体にOLEオートメーションと互換を持たせないといけないからなあ
MS製以外のエンジンを使うなら大改造になる
【VBScript】WSHについて話し合うスレ【JScript】
174デフォルトの名無しさん
2025/07/16(水) 15:03:42.67ID:8VyoLyXs175デフォルトの名無しさん
2025/08/07(木) 11:13:25.81ID:dOHm8u8G HTAでWScriptの標準入出力Stdin/Stdoutを使う方法はありますか?
という疑問でwebを漁ってたら、以下のコードを見つけたのですが、
これは何をしているか判りますか
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list127.shtml
の
>Set oExec=wShell.Exec("MSHTA〜
>oExec.StdIn.Write fso.OpenTextFile(Left(WScript.ScriptFullName,InStrRev(WScript.ScriptFullName,"."))&"HTA").ReadAll
>oExec.StdIn.Close
の辺り。〜は専ブラだとバグる
という疑問でwebを漁ってたら、以下のコードを見つけたのですが、
これは何をしているか判りますか
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list127.shtml
の
>Set oExec=wShell.Exec("MSHTA〜
>oExec.StdIn.Write fso.OpenTextFile(Left(WScript.ScriptFullName,InStrRev(WScript.ScriptFullName,"."))&"HTA").ReadAll
>oExec.StdIn.Close
の辺り。〜は専ブラだとバグる
176デフォルトの名無しさん
2025/08/07(木) 16:01:49.20ID:Pp4oXF33 意味がよくわからない
「WScript」がcscript.exeではなくwscript.exeのことなら元から標準入出力しても何も起きないけど多分そういう話ではないよね
そのソースコードは、mshta.exeを子プロセスとして起動してテキストファイルから読み込んだ内容をその子プロセスの標準入力に流してる
mshta.exeの側では標準入力から読み取った内容を実行してる
「WScript」がcscript.exeではなくwscript.exeのことなら元から標準入出力しても何も起きないけど多分そういう話ではないよね
そのソースコードは、mshta.exeを子プロセスとして起動してテキストファイルから読み込んだ内容をその子プロセスの標準入力に流してる
mshta.exeの側では標準入力から読み取った内容を実行してる
177デフォルトの名無しさん
2025/08/07(木) 16:53:21.35ID:dOHm8u8G 元々HTAとpowershell間のプロセス間通信を考えてました
WSH(WScript)とpowershellでの通信はできていたので、
ならばHTAからWScript.Stdin/Stdout相当をどうにかして得られないかという疑問に代わりました
さてGetStandardStream(0)でStdinを得るまでは何となく判りますが
そのハンドルでReadAll()これの意味が判らない
結果的にoExecにはWScript相当?が入るようですが
WSH(WScript)とpowershellでの通信はできていたので、
ならばHTAからWScript.Stdin/Stdout相当をどうにかして得られないかという疑問に代わりました
さてGetStandardStream(0)でStdinを得るまでは何となく判りますが
そのハンドルでReadAll()これの意味が判らない
結果的にoExecにはWScript相当?が入るようですが
178デフォルトの名無しさん
2025/08/07(木) 17:25:58.39ID:Pp4oXF33 あー了解
で、oExecに入るのはwShell.Exec()の結果で、起動したmshta.exeのプロセスをラップしたWshScriptExecオブジェクト
oExec.StdIn.Writeでmshta.exeの標準入力に内容を書き込んでる、これがWSH側でやってること
MSのサイトですらリンク切れしまくってたけどitmediaに解説が残ってた ttps://atmarkit.itmedia.co.jp/ait/articles/0407/08/news101_2.html
で、oExecに入るのはwShell.Exec()の結果で、起動したmshta.exeのプロセスをラップしたWshScriptExecオブジェクト
oExec.StdIn.Writeでmshta.exeの標準入力に内容を書き込んでる、これがWSH側でやってること
MSのサイトですらリンク切れしまくってたけどitmediaに解説が残ってた ttps://atmarkit.itmedia.co.jp/ait/articles/0407/08/news101_2.html
179デフォルトの名無しさん
2025/08/07(木) 17:28:32.02ID:Pp4oXF33 GetStandardStream(0).ReadAll() を実行しているのは起動されたHTAの側で、標準入力から読み込んだ内容を実行してる
リンク先サンプルだとその内容はH.HTAで、その後は裏で起動させたIEを通じてやり取りをする…という実験っぽい
というわけでHTAで標準入出力を使うには new ActiveXObject('Scripting.FileSystemObject').GetStandardStream() だけでいいと思う
手元で確認したわけではないので違ってたらごめん
リンク先サンプルだとその内容はH.HTAで、その後は裏で起動させたIEを通じてやり取りをする…という実験っぽい
というわけでHTAで標準入出力を使うには new ActiveXObject('Scripting.FileSystemObject').GetStandardStream() だけでいいと思う
手元で確認したわけではないので違ってたらごめん
180デフォルトの名無しさん
2025/08/07(木) 20:06:59.39ID:dOHm8u8G181デフォルトの名無しさん
2025/08/07(木) 21:37:56.02ID:FIb4oE/e Exec メソッド
https://learn.microsoft.com/ja-jp/previous-versions/windows/scripting/cc364356(v=msdn.10)
GetStandardStream Method
https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/windows-scripting/y6hbz9es(v=vs.84)
https://learn.microsoft.com/ja-jp/previous-versions/windows/scripting/cc364356(v=msdn.10)
GetStandardStream Method
https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/windows-scripting/y6hbz9es(v=vs.84)
レスを投稿する
ニュース
- 【フジテレビ】『サン!シャイン』3月で終了 放送わずか1年… 谷原章介MC起用も 視聴率低迷、3%台の壁を越えれず 後継番組はなし [冬月記者★]
- チキンラーメンやカップヌードル、来年4月から5-11%値上げ…袋麺の日清ラ王などは内容量減らす ★2 [蚤の市★]
- 【話題】おでんの好きな具は?! 「だいこん」「たまご」「もち巾着」「ちくわぶ」「こんにゃく」「牛すじ」★2 [ひぃぃ★]
- 【社会】丸亀製麺12月24日は15時30分で閉店 従業員とその家族のため [あずささん★]
- カルボナーラ論争勃発…イタリアの農相がイタリア風の商品に“怒りの投稿” [夜のけいちゃん★]
- 【文春】松岡昌宏が「日本テレビへの戸惑い」を語った!「鉄腕DASHの出演について、我々に進退を決める選択肢はないんだなと思った」 [Ailuropoda melanoleuca★]
- そろそろダウンタウン+入るべき?
- 大谷翔平をクロスボウで射抜きたいよな
- ハゲだけどおハゲって言わないで
- じゃん拳、グー🏡💥👊😅👊💥🏡
- イスラム教とかいう害悪宗教がのさばってるのって割と暴力が通用しちゃってるから調子に乗ってるだけなんじゃないか?
- 中国「共に高市と戦おう」フランス「我々は一つの中国政策を堅持する」 [931948549]
