WSH初心者 さん 2003年 03月 19日 19時 33分 25秒

初めまして。
仕事でWSHを少し使うことになったのですが、分からないことがあるので
教えて頂きたく書き込み致しました。

まず、以下のようなJavascriptファイルがあるとします。

// WSH Shellオブジェクト作成
WshShell = new ActiveXObject("WScript.Shell") ;
// アプリ起動
WshShell.Run("C:\sample.xls") ;

これはExcelファイルが正常にOPENしました。
しかし、コードの4行目を

WshShell.Run("C:\test test\sample.xls");

とすると、指定のファイルを探し出せずにエラー返却されます。
また、

WshShell.Run("C:\テスト\sample.xls");

としても同様のエラーが返却されます。

WSHの制約事項として、スペースや全角文字は禁止されているのでしょうか?
また、回避方法があれば教えて頂きたいのですが・・・。
宜しくお願いします。

おやじ様OYJ さん 2003年 03月 18日 16時 38分 07秒

いつも参考にさせていただいてます。
WSHでのプログラミングは初めてなので
申し訳ないですが、何かいい知恵を教えていただきたいです。

WSHのvbsで日付と時間を返したいのですが、
もちろん、now関数、time関数で出ますが、
これはWindowsのシステム環境にて決められたフォーマットで
表示されてしまいます。
あるマシンでは2003/03/18 16:38:52
またあるマシンでは03/03/18 午後4:38:52

このように、マシンの設定に依存しないように
日付、時間のフォーマットを指定しての表示とか、
別の関数がありましたら、教えていただきたいのです。
よろしくお願い致します。

マメ さん 2003年 03月 18日 16時 22分 54秒

2003年 02月 24日 00時 36分 58秒 の方と同じエラーがでたので、ウィルスの検索をしてみると、スクリプトが感染していました。でも、除去の仕方がわかりません。どなたか教えていただけませんか?

suzu さん 2003年 03月 17日 23時 26分 51秒

お世話になります。
WSH及びWindowsプログラム初心者のものです。
基本的なことかもしれませんが、ご教示いただければと存じます。

WSHの機能を使って以下のことを実施したいと考えております。
過去ログなどを拝見すると、「BASP21を使用すれば実現できる(?)」などの情報が見受けられましたが、自分の環境に当てはまるのか確信が持てずにおります。
恐れ入りますが、下記のことが可能かどうか、もし可能であれば、どのような機能を使えばよいか、どのあたりを調べればよいかをご助言いただけないでしょうか。

宜しくお願いいたします。

<環境>
サーバー【1台】:Windows2000サーバ + IIS +VBScript
クライアント【数10台】:Windows2000pro + IE5.5
※イントラネット内の閉じた世界です。

<実施したいこと>
サーバーから複数台のクライアントに対して手軽にファイル転送(ファイル送信)を実施したいと考えております。それを、「各クライアントがIIS上のあるリンク先にアクセスした際に、同Windows2000サーバ上にある、特定のファイルを自動的にダウンロードし、(クライアントの)ローカルディスク上に保存する。」という形で実現したいと考えております。なおその際、ダウンロードの確認ダイアログなどは一切表示させず、リンク先をクリックしただけで、クライアントは必ずある固有のフォルダ上に該当のファイルをダウンロードするようにしたいのです。(クライアントがダウンロード先のフォルダを選択できないようにしたい。)

yoan さん 2003年 03月 17日 21時 38分 17秒

To: なるなる さん

> このような情報はどうやって入手されるのでしょうか。

私のWSHの情報源は、もっぱらこの掲示板のHome(http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/index.html)と、過去記事、及びHomeのリンク先。
http://pc.2ch.net/win/kako/1009/10091/1009175619.html
は、なかなかおもしろいです。最後の方は、きついものがありますが(^^;
管理人さんに紹介してもらったスクリプトものってました。
管理人さんは直接MSから?
私のところにはMSDNのメールが来ていますが、まともに読んだことがない(--;
もったいないが、読む気力がないのです。いつかまとめて・・・、むりだな(^^)

mina さん 2003年 03月 17日 10時 11分 44秒

管理人むたぐち様

IEのデフォルトスクリプトエンジンはJavaScriptだったのですか。
勉強になりました。
早速試してみたいと思います。

ありがとうございました。

なるなる さん 2003年 03月 16日 19時 39分 29秒

yoanさん、管理人むたぐちさん、ありがとうございます。
お蔭様でバッチリうまく保存できました。さすがですね〜。
ほとんど見慣れない変数やオブジェクトなどが登場していますが
このような情報はどうやって入手されるのでしょうか。書籍もほとんど
出ていないようですし。
不都合がなければ、教えて頂けませんか。

yoan さん 2003年 03月 16日 18時 40分 18秒

To: 管理人むたぐち さん

> ●Webからファイルをダウンロードする方法

過去記事リスト48に載ってましたね。
たしかに、「BASP21などのコンポーネントを使わずとも、システム標準のコンポーネントだけでここまでできてしまうのは、なかなかおいしい」。

過去記事リスト48-43 管理人むたぐちさん 2001年10月14日19時35分39秒


管理人むたぐち さん 2003年 03月 16日 00時 44分 54秒

To: mina さん
●HTMLからVBScript(.vbs)を呼び出すことは可能?

可能です。
ですが、HTMLからVBSを呼び出す時は、ホストがWSHではなく、IEになることに
注意が必要です。
具体的には、WScriptオブジェクトが呼び出せなくなる等の違いがあります。

今回の件ですが、IEでlanguage属性を指定しない場合のデフォルトスクリプトエンジンは
JavaScriptなので、hoge.vbsをJavaScriptのコードと解釈されたため、エラーになったのでは
ないでしょうか。
よって、
<SCRIPT language="vbscript" SRC="hoge.vbs"></SCRIPT>
のようにlanguageを明示してやってみてください。


To: なるなる さん
●Webからファイルをダウンロードする方法

Msxml2.XMLHTTPオブジェクト(旧名Microsoft.XMLHTTP)とAdodb.Streamオブジェクトを
併用すれば可能です。
それぞれIE5.0以上、ADO2.5以上が必要となります。
Win2000、ME、XPあたりなら、デフォルトでも使えるかな?

以下は、Yahoo!Japanのタイトルロゴをダウンロードする例です。

sSource = "http://img.yahoo.co.jp/images/main7.gif" 'ダウンロード元
sDest = "test.gif" 'コピー先

Set oHTTP = WScript.CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", sSource, False
oHTTP.Send

Set Stream = WScript.CreateObject("Adodb.Stream")
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
Stream.Type = adTypeBinary
Stream.Open
Stream.Write oHTTP.responseBody
Stream.Savetofile sDest, adSaveCreateOverWrite

MsgBox "ダウンロード完了"

他にもyoanさんがおっしゃるようにBASP21を使う方法や、Irvine等のダウンロードソフトで
オートメーションが可能なものを使う等が考えられます。

yoan さん 2003年 03月 15日 22時 02分 36秒

To: なるなる さん

> 私が保存したいサイトは掲示板のようなテキストではなく、画像やpdfファイルで・・・

あ、やはりそうでしたか。
過去記事リスト14でも、そうした話題になっていましたが、結局、SendKeysを使う、あるいは、BASP21などで対処、という提案で終わっていたような、、、

過去記事リスト14-46 管理人むたぐちさん 2000年05月24日00時23分04秒

ちなみに、私はBASP21は使ったことありません。

なるなる さん 2003年 03月 15日 19時 10分 11秒

yoanさん、ありがとうございます。
早速にトライしてみましたが、私が保存したいサイトは掲示板のようなテキストではなく、画像やpdfファイルで、うまくいきませんでした。
(私の説明不足でした、すいません)
createtextfile , documentあたりを換える必要があるように思うのですが、何か適切なものはあるのでしょうか。
よろしくお願いします。

mina さん 2003年 03月 15日 18時 39分 55秒

WSH初めてまだ3日ほどのため,とんちんかんな質問かもしれませんが
よろしくお願いします。
HTMLファイルにVBScriptを記述していたのですが関数が長くなったので
別ファイル(.vbsファイル)に移動させて

<SCRIPT SRC="hoge.vbs"></SCRIPT>
<SCRIPT LANGUAGE="VBScript">

「この中でhoge.vbs内の関数を呼び出す」

</SCRIPT>

の様にしたところ「終了していない文字列型の定数です。」
というエラーが出てきてしまいました。
このエラーはvbsファイルの1行目を指しているようなのですが
vbsの内部には特に不具合はないように思えます。

そこで質問なのですが,

1.HTMLからJavaScript(.jsファイル)の様にVBScript(.vbs)を
呼び出すことは可能なのでしょうか?

2.上記が可能な場合,vbsファイル側に何か設定が必要なのでしょうか?

以上よろしくお願いします。

yoan さん 2003年 03月 15日 16時 45分 46秒

私の書き込んだ下のスクリプト、
Forのコメントをはずすときは、objIE.Visible = False
としてください(^^;

yoan さん 2003年 03月 15日 16時 21分 42秒

To: なるなる さん

私は、この掲示板の過去記事リストを取得するのに、下記のスクリプトを使っています。

Bango = Inputbox("何番目?")
'For Bango = 1 to 79
Moto = "http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list" & Bango & ".shtml"
Saki = "C:\LIST\list" & Bango & ".htm"
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate(Moto)
Do While objIE.Busy
Loop
Do While objIE.Document.readyState<>"complete"
Loop
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
Set stream = fs.CreateTextFile(Saki)
stream.Write objIE.document.body.innerHTML
stream.Close
'Next

これは、過去記事リスト14-37 秦野の大島さん 2000年05月20日23時25分08秒
に、Inputboxをつけたもの。

To: おじさん さん

この掲示板の下の方に、同じような話題があります。

ヤナギさん 2003年02月24日00時36分58秒
yoan 2003年02月24日21時04分03秒
和さん 2003年02月28日09時 41分 57秒
yoan 2003年02月28日21時53分09秒

もっとも、アンチウィルスソフトで動作が正常になったかどうかの報告は聞いていませんが。

なるなる さん 2003年 03月 14日 19時 37分 56秒

はじめまして。WSH歴2ヶ月のなるなると申します。
現在、Internet Explorerの自動化に挑戦中です。これまでのところ、特定のサイトを表示することはできたのですが、それをあるフォルダに保存するのに苦戦しています。そもそも、そのようなことまで、可能なのでしょうか。
よろしくお願いします。

市川 さん 2003年 03月 14日 10時 56分 35秒

管理人さま、ご返答ありがとうございましたm(__)m

ご指摘の通りの記述(WshShell.Run "cmd.exe /k utlsend -f TESTDATA")で
うまく動作致しました。

お忙しい中、ご面倒をおかけして申し訳ありません。
これからもしばしWSHを作るのでこちらのサイトを
フル活用させて頂きますね。

本当にありがとうございました。

おじさん さん (shigetu2002@Yahoo.co.jp) 2003年 03月 14日 00時 47分 24秒

はじめまして。ご質問します。パソコンを立ち上げると、こんなエラーが出ます。
○×Windows Script Host C\WindowsFont\Arial.vbs エラー・雇晃匪・
紺爪 80070002  唇宗。Wsh Shell,Reg Delete
どうすれば解消できますか? これはどこかが壊れているのですか?
教えてください。よろしくお願いします。

管理人むたぐち さん 2003年 03月 13日 20時 34分 37秒

申し訳ありませんが、過去の記事を辿って、未解決問題をすべてお答えする余裕はありませんので、
もしまだ未解決の問題がある方は、お手数をおかけしますがもう一度書き込みお願いします。
可能な限りお答えさせていただきます。


To: 無名メーラー使い さん
●mailto:で立ち上がるメーラーの設定について

レジストリの以下のキーが、mailto:をクリックした時立ち上がるメーラーのパスに
対応しています。
HKEY_CLASSES_ROOT\mailto\shell\open\command

よって、ここをスクリプトで変更してやればいいと思います。
レジストリを実際に書き換える方法については、このサイトのLesson9などをご覧下さい。


To: G さん
●通常使うプリンタの設定

Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter "プリンタ名"

このようなスクリプトで可能だと思います。


To: 市川 さん
●コマンドプロンプト上で動作するプログラムを起動する方法

おそらくコマンドプロンプトが表示される前に、SendKeysが実行されているのが原因だと思います。
SendKeysの前にWScript.Sleepを使って適当なウェイトを取るか、
AppActivateメソッドがTrueを返すまでLoopを取ってやるなどの対処法が考えられます。

ですが、それより確実なのは、cmd.exeとutlsendをまとめてRunしてやることだと思います。
具体的には、
WshShell.Run "cmd.exe /k utlsend -f TESTDATA"
のようにします。
/kオプションは、後に続くコマンドを実行するという意味になります。
代わりに/cオプションを使うと、コマンド実行後、ウィンドウを閉じることも可能です。

SendKeysメソッドは、Windows9xのDOS窓にはキーを送れないという制限もありますので、
後者の方法をお勧めします。
ちなみにWin9x系での動作も想定するなら、cmd.exeではなくcommand.comにしないと動きません。
ですから、WshShell.Run "%comspec% /k utlsend -f TESTDATA" のようにしておいた方が確実かも
知れません。

市川 さん 2003年 03月 13日 18時 43分 28秒

初めまして、市川と申します。

WSHを仕事で初めて使う事になり、
どうしても分からない事がありネットで調べているうちに
ここのサイトに来ました。
申し訳ありませんが、質問させて下さい。
(既出でしたら申し訳ありません。
ざっくりは調べたのですがなかったので投稿させて頂きます)

今回仕事でやる事は、HALFTというデータ転送ソフトの、
データ集配信コマンドをコマンドプロンプトにて
打って設定してある他PCにデータを送る、という事です。

そして、このコマンドを送る部分をWSHで作ってあげて、
お客様がvbsのファイルをダブルクリックするだけで、
コマンドをプロンプトに吐き出して終わる、
という処理をしたいと思ってます。

何でつまづいているかというと、
作成したvbsファイルをクリックしても
プロンプトは起動しますが、何のコマンドも吐き出さないのです。

以下に作成したスクリプトを記述させて頂きます。
*****(SCRIPT:test.vbs)*****
1:Dim WSHShell
2:Set WSHShell = CreateObject("Wscript.Shell")
3:WSHShell.Run "cmd.exe"
4:WSHShell.SendKeys "utlsend -f TESTDATA" + "{ENTER}"
***************************

ちなみに、上のスクリプトの3行目を削除して
コマンドプロンプトから実行(cscript test.vbs)した際には
問題なく送信したいコマンドを送ってくれました。


いろいろぐぐって調べてみたりしたのですが、
調べ方が悪いのか、私の目が節穴なのか分かりませんが
同様の事象を紹介しているページはありませんでした。

やってる事は簡単な事なので大変申し訳ありませんが、
どなかたご教授下さい。
宜しくお願い致します。

G さん 2003年 03月 13日 13時 20分 14秒

初めまして、Gです。

複数のプリンタを設定しているパソコンで規定のプリンタをWSHによって変更する事は可能なのでしょうか?
VBSでフォルダ作成やコピーを利用した事がある程度の知識なので、プリンタ設定などを行なう方法が検討もつきません。
ご存知の方が居られましたら、ご教授願えますか?

既出だったら、ごめんなさい。

holon さん 2003年 03月 13日 07時 37分 30秒

すみませんでした。どうやっても戻らなかったのに、
いつのまにか関連付けもどりました。
つまらないことで書き込んでしまいすみませんでした。
m(_ _)m

無名メーラー使い さん 2003年 03月 12日 15時 43分 57秒

既出だったらすみません。
無名なメーラーを使っています。
(会社のメールシステムです)
インターネットエクスプローラー使用時に、
mailto:などをクリックしたときに、
そのメーラーの差出人や件名に指定のものをセットして起動するように
したいのですが、どのようにスクリプトを書いて実行させてWindows
(レジストリ)を変更すればよいのですか。
コントロールパネルのインターネットのプロパティの
プログラムタブの電子メールで
無名なメーラーが使用できるようにしたいです。

表示の名前:会社のメール
ファイル名:mail.exe

Windows 95以降、IE 5.5以降

ご存知の方、よろしくお願いします。

管理人むたぐち さん 2003年 03月 11日 18時 00分 53秒

To: 雲さん

残らないですね。
というのも、BASP21自体が、一つのメールソフトみたいに動作するので、
既存のソフトは関係なくなってしまうのです。

お使いのメールソフトによりますけど、Outlookなんかは、VBAから動作させる
ことができますので、VBやWSHからでも同じように扱えます。
この場合だと、メールボックスの中身などにもきめ細かくアクセスすることが
可能なはずです。
詳しくはVBAのヘルプを参照なさってください。

さん 2003年 03月 11日 16時 58分 25秒

むたぐちさんご解答ありがとうございます。

BASP21を調べて見ます。
BASP21というのは送信したメールは今使っているメールの送信箱に
残るのでしょうか?

管理人むたぐち さん 2003年 03月 10日 22時 18分 10秒

To: 雲さん
BASP21が使えるなら、それを使うのが簡便で良いと思います。
メールを送信するためのメソッドが充実してますので。

mailto:で長文のbodyがエラーになるのは、コマンドラインの長さにOS上の制限が
あるからだと思います。

さん 2003年 03月 10日 10時 41分 41秒

WshShellでわからないことがあるのでどなたか教えてください。

WshShellを使ってメールを作成する方法なのですが、VBにて

Set objS = New WshShell
objS.Run "mailto:xxx@xx.xx.xx?Subject=xxx&Body=" & XYZ
Set objS = Nothing

という方法でメールを作成しています。(XYZは変数で何らかの文字列が入ります)

これだけで普通にメール作成はできるのですが作成後に同じメールにBody部分
を追記する方法というのはないものでしょうか?

XYZがかなりの長さになるとどうもうまく作成できないようなのです。
もしXYZの長さが長くてもできるようにする方法があるのであればそれでも良いのですが。

よろしくお願いいたします。

管理人むたぐち さん (mutaguchi@roy.hi-ho.ne.jp) 2003年 03月 09日 22時 44分 32秒

ご無沙汰しております。
ちょっと事情があって、これまで書き込みできませんでした。
これからは、またぼちぼち活動していけるかなあといったところです。
またよろしくお願いします。>ALL

Cihji さん 2003年 03月 07日 00時 41分 47秒

共有フォルダの作成で苦労していたのですが、ダウンロードにあった「共有フォルダの作成・削除」を使わせて頂きました。
WSH初心者なので十分には分からないところもあるのですが、改造しながらSub化して使わせてもらいました。
参考文献も購入したのですが記載されておらず、VBAも、コマンドプロンプトも使いたくなかったので、本当にありがたく思っています。

holon さん 2003年 03月 06日 00時 53分 30秒

すみません。拡張子「.vbs」のファイルの関連付けがなくなってしまいました。Windowsの旗みたいのが表示されています。困っています。どうやったらもとにもどるのかわかりません。右クリックでプロパティかと思いましたがわかりません。教えていただけますでしょうか。

yoan さん 2003年 02月 28日 21時 53分 09秒

To: 和 さん

ノートン、ウィルスバスター、マカフィー、etc...
英語版のフリーソフトもいくつかありますが、サポートを受けるには、日本語のものを有料で購入するのが無難か。

モンプチ さん 2003年 02月 28日 15時 06分 10秒

こんにちは。
RemoveNetworkDriveとMapNetworkDriveを使用し、接続するコンピュータを変更したいのですが、「前に記憶されていたデバイスを記憶しようとしました。」というエラーメッセージが表示され接続(MapNetworkDrive)できません。
回避方法をご存知の方教えてください。よろしくお願いします。

さん (simadakz@circus.ocn.ne.jp) 2003年 02月 28日 09時 41分 57秒

ヤナギさんその後どうされたのでしょう?私も同じ状態で困っています。
yoanさんからのメッセージ拝見しましたがウイルスチェックソフトの名称
おしえてほしいのですが。

ちひろ さん 2003年 02月 28日 07時 17分 29秒

http://www56.tok2.com/home/sentotihironokamikak/rinku.html

YZN さん 2003年 02月 27日 16時 27分 59秒

http://216.239.51.100/search?q=cache:5d_pktHJ1V0C:www.roy.hi-ho.ne.jp/mutaguchi/bbs/list12.shtml+StdRegProv&hl=ja&lr=lang_ja&ie=UTF-8
無事に解決できました〜。

N.L さん 2003年 02月 26日 20時 23分 22秒

はじめまして。
WSHの勉強をさせていただいています。
解らないことがありましたので質問させてください。

Cドライブ(ハードディスク)のプロパティを右クリックメニューから開きたいのですが、
「右クリックメニューの実行」の1.レジストリの値を読む。方のやり方で、
strAction:アクション名。edit、print、open、playなど。
を何と書いたら良いのでしょうか?

yuuki さん 2003年 02月 26日 13時 50分 56秒

先日、大量PCのセットアップにあたり大変参考にさせていただきました。
今回、同様に大量PC(WinXPで同一スペック)に、あるソフトをインストールしようと思っています。
前回は、「AppActivate」(結果で進捗を管理)
と「SendKeys」でできたのですが、
今回は、インストールが進んでも、ウィンドウのタイトルが同一のため、「AppActivate」で進捗がつかめません。
例:前回はタイトルが「ようこそ」→「使用許諾」→「・・・」→「完了」
  今回はタイトルが「・・・ウィザード」のまま進みます
何かインストールの進捗を把握する方法はありますでしょうか?

D.J.B. さん 2003年 02月 25日 15時 41分 45秒

VBScriptを勉強させてもらっています。
PerlとCを少し勉強していたことと、
なにより親切な説明のおかげでスムーズに学べています。

ありがとうございます。

YZN さん 2003年 02月 25日 09時 35分 25秒

VBScriptのバッチで、
ネットワークコンピューターのレジストリの値を取得したいと考えています。
各クライアントはWindows2000Proで、
RemoteRegistoryのサービスは自動起動の状態となっています。

WMIとかADSIとかWshShellオブジェクトを調べましたが、
手がかりがつかめませんでした。

どなたかご存知の方がいたら、教えてください。
よろしくお願いします。

yoan さん 2003年 02月 24日 21時 04分 03秒

To: ヤナギ さん

WINDOWS SCRIPT HOST を検索してこの掲示板へいらっしゃったのでしょうか?
Google(http://www.google.com/intl/ja/)で、Arial.vbsを<日本語のページを検索>で検索すると、ここの掲示板の過去記事を含め、いくつかの情報があります。(YAHOOでも可)
これらから察するに、ヤナギさんのPCは、「ウィルス」に感染している?
おすすめは、
・アンチウィルスソフトの正規ライセンスを取得し(要は購入)、「ウィルス」を駆逐する。
・現象がおさまらない(あるいは、別の症状が現れるようになった)場合、正規ユーザーとして、アンチウィルスソフト購入元に相談する。
かな、、、

snow さん 2003年 02月 24日 10時 33分 14秒

>30Wさん、たるさん
私の環境だと、ファイル受け渡しが一番確実かつ簡単だと分かりました。
Execメソッドも知らなかったので、勉強になりました。

<ifame name="TheFrame">をhta内部で使っています。
<a href="./result.html" target="TheFrame">frame</A>
というふうに、リンクを張るとiframe内でファイルを開けるのですが、
parent.TheFrame.open("./result.html")や
TheFrame.open("./result.html")
とするとIEが立ち上がり、そちらで開いてしまいます。
スクリプトを使って、iframe内にファイルを開く方法はあるでしょうか。

ヤナギ さん 2003年 02月 24日 00時 36分 58秒

WINDOWS SCRIPT HOST 
スクリプト:C:\FONTS\Arial.vbs
行:3
文字:1
エラー:・ヶ0ヶ0ネ・
コード:80070002
ソース:WshShell.RegDelete
と表示されちゃいます。
どのようにすればこの表示をけせるのでしょうか?
誰か教えて下さい。待っています。

テラ初心 さん 2003年 02月 23日 07時 27分 50秒

できました!
ありがとうございますっ!

たる さん 2003年 02月 22日 23時 11分 08秒

To: テラ初心 さん
>
> さて質問なのですが、CDもしくはDVDデバイストレーの開閉についてこれらWindows Script(JScript,VBScript,wshなど)からの操作はできるのでしょうか?

Set oShell = CreateObject("Shell.Application")
Set fol=oShell.NameSpace("F:\") 'CDドライブフォルダを取得
Set f=fol.Items.Item 'CDドライブをフォルダアイテムとして取得
f.InvokeVerb "取り出し(&J)"

お勧めのサイトはここ
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/shellfol.htm

To: 30w さん(CC: snow さん)

> Shell.Run """test.exe > c:\tmp.txt"""
> とかやって、出力結果をファイルへリダイレクトし、
> .hta へ取り込むことを考えます。ただ、ファイルが
> 作成されるのに、わずかな時間が必要らしく、いきなり
> ファイルを読み込もうとするとエラーになるので、
9x系だとそういう動作になるんですよね。
NT系では同期だと全てファイル化されていて読めるけど。非同期だと完了するまで標準出力も途中。
自分の場合はリダイレクトで出来たファイルサイズが0バイトの場合は待ちとか入れています。(タイムアウトもいれて)
もちろん、ウインドウがチラッと見えても良いなら、Execメソッドで標準出力を取得するんですけどね。

テラ初心 さん 2003年 02月 22日 21時 57分 24秒

はじめまして!

先日こちらのサイトを利用させていただきました。
特にJScript2講座はとてもシンプルでわかりやすく、かつ成功(!)しました>感謝しています。

さて質問なのですが、CDもしくはDVDデバイストレーの開閉についてこれらWindows Script(JScript,VBScript,wshなど)からの操作はできるのでしょうか?

上記3つのWindows Script固有の関数では、ドライブ情報の取得/割当/削除等などで、物理ドライブの制御まではできないようなんですが・・・。
また本当にできないとしたら、お勧めのプログラミング言語は何でしょうか?

よろしければ教えていただけますでしょうか?
よろしくお願いします。


snow さん 2003年 02月 22日 15時 50分 54秒

30wさん、どうも。

教えていただいた方法だと、やや回りくどいですね。
CGIをHTTPサーバを立てることなしに実行する、
30wさん、どうも。

教えていただいた方法だとやや回りくどいですね。
CGIをHTTPサーバを立てることなしに実行する、
というような事がやりたいことです。
このような機能は必ずあると思うのですが、
htaの情報はウェブ上でもあまり見つかりませんね。

もう少し調べてみます。

30w さん 2003年 02月 22日 14時 15分 14秒

僕なら

Shell.Run """test.exe > c:\tmp.txt"""

とかやって、出力結果をファイルへリダイレクトし、
.hta へ取り込むことを考えます。ただ、ファイルが
作成されるのに、わずかな時間が必要らしく、いきなり
ファイルを読み込もうとするとエラーになるので、
Shell.Run を実行した後に無駄なIEを起動・終了させて
時間を稼ぎ、それからファイルを読み込んだ記憶があり
ます。

 もっとスマートなやり方があったら教えてください。

snow さん 2003年 02月 22日 05時 07分 08秒

初めまして、HTMLアプリケーションの質問です。

フォルダにtest.htaとtest.exeがあり、
test.hta内に以下の関数を作ります。
<SCRIPT type="text/vbscript" LANGUAGE="VBScript">
Sub Test
Set Shell = CreateObject("WScript.Shell")
Shell.Run """test.exe"""
End Sub
</SCRIPT>
これを使ってtest.exeを呼ぶと、
test.exeはSTDOUTにHello Worldを出力します。
それをtest.hta内に表示させたいのですが、
どうすれば良いでしょうか。

りんご さん 2003年 02月 22日 00時 47分 59秒

自分の投稿へのレスです。ここのレッスン7で具体的に解説してありました。うっかりしてました。以後気を付けます。

NSR さん 2003年 02月 20日 20時 24分 54秒

はじめまして。
WSHで起動した.exeをWSHで終了することはできますでしょうか?
リファレンスを見ても起動(Runメソッド)はあっても終了がないので・・・
サンプルなどがあるとよりありがたいです。

りんご さん 2003年 02月 20日 20時 08分 44秒

はじめまして。フォルダ等のcopy処理の際に、800A0046 VBScript実行時エラー等が発生した場合処理が途中で終わってしまいます。このようなエラーがでた時にはメッセージをだしてとばして次の処理に移したいのですが、If Err Then 〜
では処理は通りません。どのような条件で判断させたらいいのでしょうか?

Return