ログインIDの変数は作成可能か?

このQ&Aのポイント
  • ログインIDの変数の作成について質問があります。
  • 現在はログインIDをテキストファイルに記入し、スクリプトで参照していますが、直接変数で参照できないか検討しています。
  • 複数のユーザが同じスクリプトを使用するため、変数をテキストファイルに記入する手間を減らしたいです。
回答を見る
  • ベストアンサー

ログインIDの変数は出来ませんか?

var IE = WScript.CreateObject("InternetExplorer.Application"); IE.Visible = true; IE.Width = 1000; IE.Height = 1000; IE.Navigate("https://www.***.co.jp/" method="post" name="AutoLogOn"); while(IE.busy) ; while(IE.Document.readyState != "complete") ; IE.Document.all('loginForm').username.value = "1234"; IE.Document.all('loginForm').password.value = "5555"; IE.Document.all('loginForm').submit(); while(IE.busy) ; while(IE.Document.readyState != "complete") ; 上記の様にログインいつもしているのですが、このFILEをいろいろな人が使うので、デスクトップにusernameとpasswordだけを記入したテキストを毎回作り、 IE.Document.all('loginForm').username.value = 変数1; IE.Document.all('loginForm').password.value = 変数2; この変数をデスクトップのテキストのなかの文字列を参照することは出来ませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

JScriptなのかVBscriptなのかよくわかりませんが… 回答がないみたいなので、JScriptでの例: (JScriptは使ったことがないので、IE6でテストして確認) ◇デスクトップのlogon.datの1行目を読み込む var add = new ActiveXObject("WScript.Shell").SpecialFolders("Desktop"); var f = new ActiveXObject("Scripting.FileSystemObject").GetFile(add + "\\logon.dat"); var ts = f.OpenAsTextStream(1, -2); //ForReading, TristateUseDefault var str1 = ts.ReadLine(); ts.Close(); f = null; alert(str1);

shotmo777
質問者

お礼

ありがとうございます。もっと勉強します。

関連するQ&A

  • エクセル excelVBA で 自動ログイン

    エクセルvba を使ったシステムトレードをしようと思い 初心者ながらVBAをいじっています. まずはじめにsbi証券に自動ログインをしようとする vbaを作ろうとおもい,インターネットを駆使して コードを書いてみましたが documentメソッドは失敗しましたというエラーがでてしまいます. 自分なりに色々と見返したりしたのですが どこが悪いのかいまいちわかりません. もしよろしければどこが悪いのか指摘していただけないでしょうか? よろしくお願いします. 以下ソース ******************************** Option Explicit Sub test() Dim ie As Object Dim strUserName, strPassword As String strUserName = Range("C5").Value strPassword = Range("C7").Value Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate "https://k.sbisec.co.jp/bsite/visitor/top.do" IE_Complete ie ' Do While ie.Busy = True '何もしないループ(笑) ' DoEvents ' Loop ie.Document.All.UserName.Value = strUserName 'ユーザー名 ie.Document.All.Password.Value = strPassword 'パスワード ie.Document.All.login.Click 'クリック End Sub Public Sub IE_Complete(ByVal ie As Object) 'IE読み込みが完了するまで待つ Do While ie.Busy = True DoEvents Loop Do While ie.Document.ReadyState <> "complete" DoEvents Loop End Sub

  • VBAで教えてgooに自動ログインしたい

    Sub 教えてgoo() Dim objIE As Object Const READYSTATE_COMPLETE As Long = 4 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://login.mail.goo.ne.jp/id/authn/LoginStart?Site=oshiete.goo.ne.jp&Success=http%3A%2F%2Foshiete.goo.ne.jp%2F" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all("ログイン").Click End Sub --------------------------------------------------------- を実行してみても、 objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" objIE.document.all("ログイン").Click の部分がエラーになってしまいます。 教えてgooは、VBAでログインできないように規制されてるのでしょうか?

  • JavaScript初心者です

    今、あるページに自動でログインした後で、特定のページまで移動する、という仕掛けを 作っています。ソースはこんなんです。 ------ここから----- main(); function main() { var ie = WScript.CreateObject("InternetExplorer.Application"); ie.visible = true; ie.navigate("URL"); while( (ie.Busy) || (ie.readystate != 4) ) { WScript.Sleep(100); } // ユーザID ie.document.getElementById("email").value = "メールアドレス"; // パスワード ie.document.getElementsByName("password").item(0).value = "パスワード"; ie.document.getElementsByName("menu_btn").value = "ログインページ"; ie.document.getElementsByTagName("form").item(0).submit(); while( (ie.Busy) || (ie.readystate != 4) ) { WScript.Sleep(100); } } var location; location.href = "移動先"; -----ここまで----- ログインは無事にできるのですが、そこのリンクを踏んで特定のページまで行くように location.hrefで指定してるのに飛ぶことができません。何がおかしいのでしょうか?

  • オブジェクト変数または With ブロック変数が設定されていません。

    下記の様に組みましたが、下記の★印の所で止まる様な事があります。 毎回止まるわけではないのですが、止まる時に「オブジェクト変数または With ブロック変数が設定されていません。」と表示されますが、 原因は何か?どの様にすればいいのか?など詳しく教えてください。 よろしくお願いします。 Sub test() Dim objIE As Object Dim strCOMMENT As String Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://" While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'データをセットする 'htmlドキュメント フォーム(0番目) アイテムに転記(代入)する objIE.Document.forms(0).Item("username").Value = "11111" objIE.Document.forms(0).Item("password").Value = "11111" While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.all.subm.Click While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop For Each link In objIE.Document.Links If link.href = "http://" Then link.Click End If Next While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'タイトル・コメントの読み込み strtitle = Sheets("sheet1").Range("k7") strCOMMENT = Sheets("sheet1").Range("k9") Application.WindowState = xlMinimized While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.forms(0).Item("title").Value = strtitle objIE.Document.forms(0).Item("comment").Value = strCOMMENT While objIE.readystate <> 4 While objIE.busy = True DoEvents ' Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.all.submit.Click While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'フォーム(0番目)を .Submit(確認) する objIE.Document.forms(0).getElementsByTagName("input")(11).Click '←★この部分で止まる時があります。 While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop For Each link In objIE.Document.Links If link.href = "http://" Then link.Click End If Next While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 7, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Quit '.Quitで閉じる End Sub

  • javascriptを使ったformへの自動ログインがうまくいきません

    こんにちは、以下のような書かれたサイトにjavascriptを使って自動ログインしたいと考えていますが、うまくログインされません。 一番下のinputタグにてログインしているようなのですが IE.Document.Form1.imgLogin.click(); とすると、エラーになるので IE.Document.Form1.elements(5).click(); としましたがエラーにはならないもののうまくいきませんでした。 IE.Document.Form1.elements(5).data = true; IE.Document.Form1.elements(5).value = true; IE.Document.Form1.action = "index.aspx"; IE.Document.Form1.submit(); としてみましたが、こちらもうまくいきませんでした。 どのようにしたら、自動ログインすることが可能なのでしょうか? 教えて頂けると非常に助かります。 よろしくお願いいたします。 ---サイトフォーム <FORM id=Form1 name=Form1 action=index.aspx method=post> <INPUT id=__VIEWSTATE type=hidden value=... name=__VIEWSTATE> <INPUT id=__EVENTVALIDATION type=hidden value=... name=__EVENTVALIDATION> <INPUT id=txtUid maxLength=6 value="" name=txtUid> <INPUT id=txtPwd type=password maxLength=20 value="" name=txtPwd autocomplete="off"> <INPUT language=javascript id=imgLogin onclick="{ if (document.Form1.txtUid.value==&quot;&quot;) { document.Form1.txtUid.focus();alert('ユーザIDを入力してください。');return false;} if (document.Form1.txtPwd.value==&quot;&quot;) {alert('パスワードを入力してください。');document.Form1.txtPwd.focus();return false;} return true;};" type=image src="img\login1.gif" border=0 name=imgLogin></form> ----オートログイン.js var IE = WScript.CreateObject("InternetExplorer.Application"); IE.Visible = true; IE.Navigate("http://hogehoge/hoge/index.aspx"); while(IE.busy) ; while(IE.Document.readyState != "complete") ; IE.Document.forms(0).elements(3).value = "user"; IE.Document.forms(0).elements(4).value = "password"; //IE.Document.forms(0).elements(5).click(); //IE.Document.Form1.imgLogin.click(); IE.Document.Form1.elements(5).data = true; IE.Document.Form1.action = "index.aspx"; IE.Document.Form1.submit();

  • vba IE操作 教えてgoo マイページ

    賃貸・タウン情報の「Q&A広場」 で教えてgooを使っているのですが 2個目のie_waitが機能しないというか意味がない状態になります。 ********************************************************** Sub test() Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://hiroba.chintai.net/login?return_url=http%3A%2F%2Fhiroba.chintai.net%2Fmypage#tabs" Call ie_wait '1個目 objIE.Document.all("mailaddress").Value = "あああ" objIE.Document.all.Password.Value = "1111" objIE.Document.all.login_skip.Click objIE.Document.Forms(1).submit Call ie_wait '2個目 End Sub -------------------------------------------------- Sub ie_wait() Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop Do While objIE.Busy = True DoEvents Loop End Sub ********************************************************** 二個目のie_waitは、 ie_waitの操作が完了しないのに次のコードへ進んでしまいます。 一個目のie_waitは、 objIE.Navigate "http://hiroba.chintai.net/login?return_url=http%3A%2F%2Fhiroba.chintai.net%2Fmypage#tabs" が表示さえるのを待つコードですが、 objIE.Document.Forms(1).submitでログインして、マイページが表示されるまで待つには、 どのようなコードを入れればいいのでしょうか?

  • VBAでIE操作

    こんばんは。エクセル2003です。 証券会社にVBAでログインを試みてるのですができません。 ソースの一部を転記します。 <label for="account_id"><span>ユーザー名</span></label> <input type="text" tabindex="1" id="account_id" name="account_id" /> <label for="password"><span>パスワード</span></label> <input type="password" tabindex="2" id="password" name="password" /> <div id="rememberbox"> <label for="remember" id="rememberlabel">ユーザー名を記録する</label> <input type="checkbox" tabindex="3" name="remember" id="remember" /> </div> なので、下記VBAコードを作りました。 Sub IGマーケット証券() Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.igmarkets.co.jp/login/" Do While objIE.Busy = True DoEvents Loop Const READYSTATE_COMPLETE As Long = 4 Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.Document.all("account_id").Value = "test" objIE.Document.all("password").Value = "test" objIE.Document.Forms(0).submit Set objIE = Nothing End Sub ですが、 objIE.Document.all("account_id").Value = "test" のところでエラーになってしまいます。 objIE.Document.all("login").Value = "test" に変えても同じです。 何がいけないのでしょうか? アドバイスよろしくお願いします。

  • なぜmatchメソッドがエラーになる?

    こんばんは。 下記スクリプトですが、「★★★」の個所で「オブジェクトでサポートされていないプロパティまたはメソッドです。」となってしまいます。なぜでしょうか?また、回避するにはどうしたらいいでしょうか? やりたいことは、"rd"を含むURLだけリストしないのです。 -- var IE = WScript.CreateObject("InternetExplorer.Application"); var URL = "http://www.yahoo.co.jp"; IE.Navigate(URL); WaitLoad(); var fs = WScript.CreateObject("Scripting.FileSystemObject"); var stream = fs.CreateTextFile("yahoo.txt"); var objTagsAs = IE.Document.all.tags("A"); for (i = 0; i < objTagsAs.length; i++) if (objTagsAs[i].match(/rd/i) != -1) //★★★ stream.Write(objTagsAs[i] + "," + objTagsAs[i].innerText + "\r\n"); stream.Close(); function WaitLoad() { var stat, dstart; stat = 0; while(true) if(stat == 0) { if(!IE.Busy) if(IE.Document.readyState == "complete") { dstart = (new Date()).getTime(); stat = 1; } } else { if(!IE.Busy && IE.Document.readyState == "complete") { if((new Date()).getTime() >= dstart + 3000) break; } else stat = 0; } }

  • If~ElseIfが冗長なので修正したいが・・・

    If~ElseIf~Else~EndIfの文でかなり冗長な気がするのですがもっと見栄え良く書く方法はないでしょうか? 個人的にはForなんとかで出来るような気がしますがうまくいきません。 If objIE.Document.URL = strURL Then Set objIN = objIE.Document.getElementByTagName("INPUT") objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop If objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop ElseIf objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop ElseIf objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop ElseIf objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop Else objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop End If

  • yahooにvbaでにログインする時

    今までは objIE.Document.all("UserName").Value = MyUserName objIE.Document.all("Passwd").Value = PW で、問題なくログインできていたのに ("UserName").Value だけ失敗するようになりました。 エラー内容は オブジェクトが必要です。(Error 424) です。 しかし、 objIE.Document.all.UserName.Value = MyUserName objIE.Document.all.Passwd.Value = PW にするとコードが通ります。 ダブルコーテーションでくくると何がいけないのでしょうか?

専門家に質問してみよう