アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログラム
----------------------------------------------------------------
option explicit
dim objwshell
set objwshell = createobject("wscript.shell")
objwshell.run "ファイルのフルパス", 1, false
set objwshell = nothing
---------------------------------------------------------------

その「ファイルのフルパス」上に「notepad.exe」と入力するとメモ帳が起動するんですけど、他のファイル(vbs、jsなど)を指定するとエラーが出ます。
もしかしてこれは拡張子が「.exe」のファイルだけしか起動できないのでしょうか?
ちなみに上のファイルを保存するときの拡張子は「.vbs」です。

A 回答 (3件)

No.1ですが、少し補足しておきます。



基本的に、VBSの実行ファイルはcscript.exeかwscript.exeになると思います。
~.vbsは先に書いたようにスクリプトを記述したファイルですので、関連付けに
問題が無ければ、~vbsの指定でどちらかのexeファイルが実行されると思います。
パスが間違っているか関連付けがおかしい場合は起動できない状況になると思います。
ですから、cscript ~ という指定で明示的に実行ファイルを指定する方法を提示しました。
    • good
    • 0

私も同じrunメソッドで .vbs から .vbs をcallしており、問題なく実行できています。


しかし下記の3点ほど気になる点があります。

【1点目】
フルパスとは "D:\ ~ \abc.vbs" のことで、これを "abc.vbs" としていませんか? notepad.exe は既にパス(実行ファイルのあるフォルダのを登録すること)が設定されているため "notepad.exe" だけで実行できます。

【2点目】
runメソッドの第3パラメータを false とすると並列に実行されます。つまり別タスク(別スレッド?)で実行されます。単純な関数callのつもりでしたら true としなければいけませんが、これが原因で意図どおりの結果になっていないことはありませんか?

【3点目】
私は Norton AntiVirus を使ってますが、このソフトは、親スクリプトの初回起動時に認証させても、子スクリプトは無言のまま遮断するようです。この対策としては、一度あらかじめ子スクリプトだけを実行して、子スクリプトを認証させておきます。その後は普通に親スクリプトの実行だけで、子スクリプトも遮断されること無く実行できるようになります。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
解決しました。

お礼日時:2006/11/20 12:16

下記のように、「ファイルのフルパス」に、cscriptの実行でどうでしょうか?



"cscript test1.vbs"
"cscript test2.js"

※vbsやjs自体は実行可能ファイル(プログラム)ではなく単なるスクリプトを記述したファイルです。
    • good
    • 1
この回答へのお礼

ありがとうございました。見事にできました。
ちなみにcscriptだとコマンドプロンプトが表示されてしまうので、wscriptにしました。

お礼日時:2006/11/20 12:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A