質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.36%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

2249閲覧

VB.NETで作成したアプリケーションをVBSctiptから起動して、戻り値を取得する方法はありますか。

退会済みユーザー

退会済みユーザー

総合スコア0

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/08/31 01:50

イメージとしては
VBScriptから、VB.NETで作成したアプリケーションを起動

アプリケーション側で、テキストボックスに値を入力してボタンを押す

VBScript側で、アプリケーション側で入力された内容を取得
ということを実現できないか考えております。

終了コードを取得方法までは見つけることができたのですが、
今回悩んでいるのは、任意の文字列等を渡すことができないかということです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/08/31 01:52

標準入出力を使うのがポピュラーですが、他にも方法はあります。標準入出力でいけない理由は何かありますか?
KoichiSugiyama

2020/08/31 02:25

VBScriptでの終了コード取得にWshScriptExecのExitCodeを使っているのであればZuishinさんも書かれているように、WshScriptExcec.StdOutで標準出力に書き出された文字列を取得するのが簡単そうですがVB.NET側のプログラムを変更できない等の理由があるのでしょうか。
dodox86

2020/08/31 02:40

既にコメントをいただいていますが、VB.NET側のプログラムを修正できるか否かで回答も変わってくるはずです。修正できない場合、VB.NET側のデータを取得することは一切不可能なことも考えられます。その点をまずはっきりさせましょう。
guest

回答2

0

ベストアンサー

みなさまご検討・ご回答ありがとうございました。
実現しようとしている機能の都合上、VBSからアプリケーションを起動→アプリケーションに値を入力→入力内容の取得をVBSで行う必要がありました。
ただ、アプリケーション実行用のVBSと、値を取得するためのVBSは、
同じでなくてもいいことが判明したので、そちらの方法で代用しようかと思います。

投稿2020/09/02 05:30

編集2020/09/02 05:33
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/09/02 05:37

意味がわからないので低評価します。他人に伝わるよう書き直せば戻します。
guest

0

クリックボードに複写はダメですか。
Exe名:WinApp.exe / VBScriptファイル:同一フォルダ

VB.net

1Public Class Form1 2Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed 3 My.Computer.Clipboard.SetText("This is a test Copy " & Format(Now, "HH:mm:ss")) 4 Dim rt1 As Integer = 1234567 5 Environment.Exit(rt1) 6End Sub

VBScript

1dim Result 2dim fso 3dim FolderName 4dim ExitName 5 6set fso = createObject("Scripting.FileSystemObject") 7FolderName = fso.getParentFolderName(WScript.ScriptFullName) 8ExitName = FolderName & "\" & "WinApp.exe" 9 10Set WshShell = CreateObject("WScript.Shell") 11Set WshEnv=WshShell.Environment 12Set WshExec = WshShell.Exec(ExitName) 13 14Do While WshExec.Status = 0 15 WScript.Sleep 100 16Loop 17 18Set objIE = CreateObject("InternetExplorer.Application") 19objIE.Navigate("about:blank") 20strText = objIE.document.parentWindow.clipboardData.GetData( "Text" ) 21 22Result = "" 23Result = Result & "Status : " & WshExec.Status & VBLF 24Result = Result & "ExitCode: " & WshExec.ExitCode & VBLF 25Result = Result & "Text : " & strText 26WScript.Echo Result

IEセキュリティ設定でスクリプトによる貼り付け処理の許可を有効にする必要あり。

投稿2020/08/31 06:37

tosi

総合スコア553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/08/31 06:56

その設定を有効にした IE で悪意のあるサイトや広告を閲覧するとクリップボードの中身を送信する危険があります。
tosi

2020/08/31 08:14

有難う御座います。これば運用の問題ですね。
Zuishin

2020/08/31 08:20 編集

そうですね。そのような運用を万一にでもされないよう、必ず注意書きを書いておかなければならない危険なものだと思います。IE はまだ意外とかなりのシェアを持っています。teratail の回答は多くの初心者の情報ソースになります。 注意書きですませるのではなく、他の手段があるうちは最後の手段として使わないのがベターとも思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問