掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBScriptから別のexeファイルを実行する方法 (ID:105840)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
原因はコードをみないことにはわかりませんが・・・。 例えば、コマンドライン引数を取得してテキストボックスに表示する VBのExe D:\Say\Command\Project1.exe があったとします。 このExeに文字列"ABCDE"をコマンドラインにわたすには、 メモ帳か何かで Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "D:\Say\Command\Project1.exe ABCDE",,True Set WshShell = Nothing MsgBox "おわったよん" というスクリプトを書いて、WshShellTest.vbs とかいう名前で 保存して、保存したファイルをダブルクリックすれば実行されます。 開いたWindowを閉じると、"おわったよん"とダイアログに表示します。 ・・・って、この回答、そのまま「Visual Basic 初心者掲示板」の 「コマンドライン引数を渡すには?」の回答に使えるんでないかい? 戻り値がほしいときは、Runメソッドでなく、Execメソッドを使います。 ただし、Execメソッドを使うにはWSHの最新版(Ver5.6)が必要です。 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=E74494D3-C4E1-4E18-9C6C-0EA28C9A5D9D VBで標準出力させるのは面倒なので、 とりあえず、BorlandC++でサンプル作ってコンパイルしました。 //Cサンプル #include <stdio.h> int main(int argc , char *argv[]) { int i ; char j[10] ; for (i = 1; i < argc; i++){ j[i - 1] = *argv[i] ; } j[i + 1] = 0 ; printf("%s\n",j); return 0 ; } コマンドライン引数をくっつけて、標準出力に吐くだけですね。 これをコンパイルして、D:\Say\CWORK\BCCWORK\cmdparam\cmdparam.exe に置きました。 これに、 1 2 3 という引数渡すスクリプトを書いてみます。 出力は 123 になるはずです。 Set WshShell = WScript.CreateObject("WScript.Shell") Set objExec = WshShell.Exec("D:\Say\CWORK\BCCWORK\cmdparam\cmdparam.exe 1 2 3") Do While objExec.Status = 0 WScript.Sleep 100 Loop MsgBox objExec.StdOut.Read(3) Set objExec = Nothing Set WshShell = Nothing というスクリプトを書いて、WshShellTest2.vbs とかいう名前で 保存して、保存したファイルをダブルクリックすれば実行され、 "123"とダイアログに表示します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.