tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVBScriptファイルの実行
記事No9572
投稿日: 2009/11/10(Tue) 14:44
投稿者デイジー
WindowsXP、VB.NET2003で開発を行っています。

そこで、あるボタンを押下した際、外部ファイル(VBScriptファイル)である.vbsを実行したいのですが、実行方法がよくわかりません。

さまざまな情報を検索する限りでは、COMのMSScriptControlを参照設定すると書いてあるのですが、使用方法がよくわかりませんでした。

お手数ですが、教えていただけませんでしょうか。よろしくお願いします。

[ツリー表示へ]
タイトルRe: VBScriptファイルの実行
記事No9573
投稿日: 2009/11/10(Tue) 15:07
投稿者魔界の仮面弁士
> 外部ファイル(VBScriptファイル)である.vbsを実行したいのですが、
Process.Start("C:\sample.vbs") でどうでしょう。
あるいは、CSCRIPT.EXE / WSCRTIP.EXE 経由で呼ぶのも手です。

> さまざまな情報を検索する限りでは、COMのMSScriptControlを参照設定すると
参照設定せず、レイトバインドで使う事も出来ますけれどね。

> 使用方法がよくわかりませんでした。
ScriptControl の Language プロパティを "VBScript" にしてから、
 ・ExecuteStatement メソッドで、スクリプトの内容を実行させる。
 ・EVal メソッドで、式を評価し、その結果を受け取る。
 ・AddCode メソッドでプロシージャを流し込み、Run メソッドで実行する。
などを実行します。
http://dobon.net/vb/dotnet/programing/eval.html#section5
http://blog.livedoor.jp/akf0/archives/51386179.html

なお、外部ファイルを読み込む機能は無いので、*.vbs の中身を
String 変数に取り込む部分は、自身で記述する事になります。

[ツリー表示へ]
タイトルRe^2: VBScriptファイルの実行
記事No9574
投稿日: 2009/11/10(Tue) 15:33
投稿者デイジー
早速のご回答ありがとうございます。

> Process.Start("C:\sample.vbs") でどうでしょう。
確かにこの方法ですと、簡単に実行することができました。
しかしながら、VBScripot側で、WScript.Argumentsを使用し、
パラメータを受取っています。
この場合は、パラメータの受け渡しは出来ないのでしょうか?

> あるいは、CSCRIPT.EXE / WSCRTIP.EXE 経由で呼ぶのも手です。
この方法も検索してみたのですが、
VB.NETからの実行方法がよくわかりませんでした。

> なお、外部ファイルを読み込む機能は無いので、*.vbs の中身を
> String 変数に取り込む部分は、自身で記述する事になります。
教えていただいた参考URLを見てみましたが、
*.vbsの中身が1000行以上あるため、
String変数に取り込むのは厳しいと思い、
あきらめていました。。。

再度のご質問で申し訳ありませんが、
ご確認お願い致します。

[ツリー表示へ]
タイトルRe^3: VBScriptファイルの実行
記事No9575
投稿日: 2009/11/10(Tue) 15:45
投稿者Hongliang
Process.Start は渡せる引数にバリエーションがあります。
http://msdn.microsoft.com/ja-jp/library/system.diagnostics.process.start.aspx

[ツリー表示へ]
タイトルRe^4: VBScriptファイルの実行
記事No9576
投稿日: 2009/11/10(Tue) 15:52
投稿者デイジー
> Process.Start は渡せる引数にバリエーションがあります。
> http://msdn.microsoft.com/ja-jp/library/system.diagnostics.process.start.aspx

調べ足らずで、申し訳ありませんでした。
実行を確認できました。
ありがとうございました。

[ツリー表示へ]