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

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

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

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

VBScript

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

Q&A

解決済

2回答

6415閲覧

vbsにてIE起動しget送信で引数を送りたい

nakasaki

総合スコア7

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

VBScript

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

0グッド

0クリップ

投稿2016/08/09 05:31

プログラムに関して初心者です。上手く内容をお伝え出来ず、ご迷惑をおかけしてしまうかもしれませんが何卒皆さまのお力をお貸しいただけましたら幸いです。
###前提・実現したいこと
・現状
AシステムにてIDログイン(利用者毎にIDは異なる)→Aシステム上からBシステム(IE上で動作)をURL(getメソッド)にて起動できるようになっており、ID情報を引っ張り自動ログイン(特定のIDのみログイン可)しています。

・変更したい内容
現状どおりAシステムからのID情報を引っ張り、自動ログインできる状態にてBシステム(IE)を指定のウインドウサイズ、位置で開けるようにしたいです。

調べた所vbsにてウインドウサイズを指定してIE起動できることがわかり、その方法を利用。
Aシステム→
bat(Aシステムから直接vbsが起動出来ないため、vbs起動用として挟む)%1にてID情報をvbsへ→
vbsにてID情報を受け、IEをウインドウ指定して開く→objIE.NavigateでBシステムURLへGetメソッドで飛ぶように設定し自動ログインできるようにしたいです。

###ここに質問したいことを詳細に書いてください
AシステムからID情報をbatへ→引数をbatからvbsへ→vbsにてIE起動しgetメソッドでAシステムからのID情報をBシステムへ送れるようにする方法はありませんでしょうか。

###発生している問題・エラーメッセージ
vbsまではID情報を引っ張ってこれているようですが、vbsにてIE起動しgetメソッドでBシステムへID情報を送ることが出来ません。

###該当のソースコード
batファイル・vbs・URLgetメソッド

・batファイル
@echo off
rem batファイルからVBScriptを実行
cls
cscript //nologo C:\IeAutoStartUp.vbs %1

・vbs
Option Explicit
Dim objIE
Dim i
Dim intWidth
Dim intHeight
Dim intX
Dim intY
Dim oParam

'引数(パラメータ)の取得
Set oParam = WScript.Arguments

'初期設定(ウィンドウサイズ、表示位置に使用)
intWidth = 1280
intHeight = 920
intX = 0
intY = 80

'IEオブジェクトを作成します
Set objIE = CreateObject("InternetExplorer.Application")

'ウィンドウの大きさを変更します
objIE.Width = intWidth
objIE.Height = intHeight

'表示位置を変更します
objIE.Left = intX
objIE.Top = intY

'ステータスバーとツールバーを非表示にします
objIE.Statusbar = False
objIE.AddressBar = False

'URL指定(Getメソッド)
objIE.Navigate "http://○○/singlesignon.htm?UserID=oParam"

'インターネットエクスプローラ画面を表示します
objIE.Visible = True

###試したこと
上記内容を実施。
AシステムにてIDログイン→
AシステムにてbatへID情報を送り起動(そのようにできる設定があります)→
batにてvbs起動→
%1でログイン情報をvbsへ→
vbsにてBシステムへGetメソッドで起動(USERID=○○ の○○部分が自動でBシステムのログイン情報として変換されている模様ですがよくわかりません。)
しかしIDを引っ張れませんでした。(ログインフォームには oParamとでます)
vbsまでID情報を送れていることを確認するため、下記vbsでコマンドライン上にID情報を送れていることを確認しました。
Dim oParam
Set oParam = WScript.Arguments
Dim idx
For idx = 0 To oParam.Count - 1
WScript.echo oParam(idx)
Next

他、VBSでIEを指定ウインウサイズで開き、閉じるという動作を作成。そのvbsを起動してもらえば次回以降IEが指定位置・サイズで開くかと思いましたがvbsではウインドウを閉じてもIEの位置・サイズは記憶されませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
IE8上での動作となります。

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

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

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

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

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

guest

回答2

0

ベストアンサー

objIE.Navigate "http://○○/singlesignon.htm?UserID=oParam"
URLとして"oParam"という文字列を送ってしまっているようです。

今回の場合はoParam変数の内容を渡したいので、
objIE.Navigate "http://○○/singlesignon.htm?UserID=" & oParam
としてみてはどうでしょうか。

投稿2016/08/09 06:19

編集2016/08/09 08:23
jawa

総合スコア3013

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

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

nakasaki

2016/08/09 10:14

ご回答ありがとうございます。 ご教授通り変更してみましたが、 実行時エラー:引数の数が一致していません。または不正なプロパティを指定しています。 とエラーがでて上手くいきませんでした。
jawa

2016/08/09 10:51 編集

すみません、oParamにはWScript.Arguments全体をセットしていたのですね。 ``` 'Set oParam = WScript.Arguments oParam = WScript.Arguments(0) ``` としてoParamに第一引数のみを取得するか、もしくは ``` objIE.Navigate "http://○○/singlesignon.htm?UserID=" & oParam(0) ``` として第一引数をパラメータとして渡してみてください。
nakasaki

2016/08/09 11:06

ご教授通り第一引数を設定することでID情報を渡せました!! ありがとうございます!!本当にありがとうございました!
guest

0

Navigateメソッドの第一引数はBSTRである必要がありますが、VBScript上でBSTR変換するのができてないように見えます。
(VBScriptでなく)VB/VBAであれば、StrConv関数にてBSTR変換したりできますがVBScriptには備わってませんので、
《ここからは仮設》
下記のStrConvDLLにて与えるURLをBSTR変換してみてはいかがでしょうか。

文字変換ライブラリ StrConvDLL
http://www.gesource.jp/soft/strconv/strconvdll.html

投稿2016/08/09 06:00

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

nakasaki

2016/08/09 10:04

ご回答ありがとうざいます。 勉強不足にて回答文の内容がわからない部分多いため、勉強・確認しながら試してみたいと思います。
退会済みユーザー

退会済みユーザー

2016/08/09 12:21

この回答、既に削除申請を出しています。間違った回答ですので、無視してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問