vbscriptでIE自動入力(途中で出てくるポップアップをクリックしたい)
- IE自動入力をしていくと、途中のクリックでポップアップが表示され、スクリプトが停止してしまいます。
- ポップアップの内容は「セキュリティの警告」というタイトルで、要求には「はい(Y)」「いいえ(N)」「証明書の表示(V)」の選択肢があります。
- 自動でポップアップをクリックするための方法を教えてください。
- ベストアンサー
vbscriptでIE自動入力(途中で出てくるポップアップをクリックしたい)
IEで自動化入力をvbscriptで作っております。 次々に問題というか知識の無さでつまづいています。お知恵を貸してください。 IE自動入力をしていくと、途中のクリックで次画面に 進むところでポップアップが浮き上がりスクリプトが止まってしまいます。 ポップアップの内容は、 タイトルが「セキュリティの警告」 内容が「このサイトと取り交わす情報は、ほかの人から読み取られたり変更されることは ありません。しかし、このサイトのセキュリティ証明書には問題があります。、、、」 と出まして、 「はい(Y)」「いいえ(N)」「証明書の表示(V)」と選択肢があります。 手動で「はい」をクリックするか、Yキーを押すとまたスクリプトが進み始めます。 これを自動でクリックするためにはどうしたらいいんでしょうか。 いろいろ調べてこうして見ました。 Set wshshell=wscirpt.createobject("wscript.shell") wshshell.AppActivate("セキュリティの警告") wshshell.sendkeys "y" これでは、全く動きません。おそらくこのウィンドウにコントロールが行ってないと思います。 他の手立てを教えてください。よろしくお願いします。
- rampower
- お礼率100% (2/2)
- Visual Basic
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ポップアップが表示されるより早く、yが送られてしまってるんでしょう。 ポップアップが表示されるのを待たないとね。 Set wshshell=wscirpt.createobject("wscript.shell") 'セキュリティの警告が表示されるまで待つ Do Until wshshell.AppActivate("セキュリティの警告") WScript.Sleep 100 Loop 'セキュリティの警告が消えるまでyを送る Do While wshshell.AppActivate("セキュリティの警告") wshshell.sendkeys "y" WScript.Sleep 100 Loop 永久ループに陥らないように、適度にループ抜けを入れておけばいいでしょう。
関連するQ&A
- VBSのsendkeysで日本語を出力したいです
WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?
- ベストアンサー
- その他(プログラミング・開発)
- VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法
VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法を教えてください。 現在、下のような方法で行っているのですが応用が利かないので改善したいと思っています。 Set IE = CreateObject("InternetExplorer.Application") Set WshShell = CreateObject("WScript.Shell") IE.Visible = True IE.Navigate("https://サイトのURL") Do Until IE.Busy = False WScript.Sleep 1000 WshShell.SendKeys "y" Loop '(セキュリティの警告が出るため) WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "loginid" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "password" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WshShell.SendKeys "{ENTER}" 操作したいページのソースの一部を抜粋すると下記のようになっています。 テキストボックス <INPUT type="text" name="loginId" class="Necessary" size="20" maxlength="5" value="" tabindex="20"> ボタン <INPUT class="button10" type="button" name="sentaku" value="認証" onClick="javascript:execute・・・・略 うまく操作できる方法を教えてください。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- WSHスクリプトでブラウザ更新
教えてください。 WSHスクリプトでブラウザの更新をF5ではなくてControl + Rしたいのです。 Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 2000 WshShell.AppActivate "テスト" WScript.Sleep 2000 WshShell.SendKeys "^R" WScript.Sleep 2000 WScript.Echo "終了" 最初の一回目の実行時はできるのですが、それ以降更新してくれません。 よろしくお願いいたします。
- 締切済み
- その他(プログラミング・開発)
- Windows 7 でのWSH の挙動
お世話になります。 msdnにある「電卓をアクティブにするサンプルを Vistaで実行すると、電卓がアクティブになり、 計算結果を吐き出しますが、 Windows7(Pro,SP1)で実行すると 最前面に電卓が出るものの アクティブになっていない上に、 複数の電卓がどんどん立ち上がってきます。 Vistaと7で、プロセス(?)の管理が 変わっているのだと思います。 7でも電卓をアクティブにするには、 どうすればいいのでしょうか? 以下コードです。 ================================================ set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "1{+}" WScript.Sleep 500 WshShell.SendKeys "2" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 500 WshShell.SendKeys "*3" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 2500 ================================================
- 締切済み
- Windows 7
- JP1からvbs(PSExec)が起動できない
突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。
- 締切済み
- Visual Basic
- WSHを使いTELNETで%USEPROFILE%\デスクトップにファイルを複写したい
WSHをはじめたばかりです。TELNETで接続した現在の相手のデスクトップにファイルを複写させたいと考えています。 DOSのように指定したのですがカナ文字や%がうまく渡されていないようなのですがどのように設定すればよいか教えてください。 下記のように作成しています。 よろしくお願いします。 set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "確認" WScript.Sleep 1000 adr = InputBox("端末IPアドレスを入力してください。", 1) adr = "telnet " & adr & "~" rem telnet ホスト名 WshShell.SendKeys adr WScript.Sleep 2000 rem ユーザー名 WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem パスワード WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem コマンド WshShell.SendKeys "cd %USEPROFILE%\デスクトップ~" WScript.Sleep 3000 rem あとCOPYによる複写コマンドの記述
- ベストアンサー
- その他(プログラミング・開発)
- IEのポップアップがおかしい
IEのポップアップの設定がおかしい?ので教えてください。 ポップアップが開くリンク先をクリックした場合に、 本来ならば元画面はそのまま&新しくポップアップが開くと思うのですが、 元画面がポップアップの画面に変わってしまうようになりました。 (新しく開くポップアップと全く同じ内容) 右クリックで「新しいウィンドウで開く」にすると、以前と同じように使えます。 ポップアップブロックを有効にしても無効にしても同じ。 IE6でもIE7でも現象は変わりません。 WINDOWS XP SP2です。 情報が足りなければ、後から補足します。
- ベストアンサー
- ブラウザ
- VBScript
下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)
- ベストアンサー
- その他(プログラミング・開発)
- VbscriptでIEのコントロール
以下の2つのサイトを参考にIEの自動処理を作っています。 「IE 画面を、スクリプトで操作する (パソコン便利ツール集)」 http://makoto-watanabe.main.jp/htmlDOM.html 「WSH JScriptを使いこなそう ~キーボード操作~」 http://3rd.geocities.jp/kaito_extra/Source/KeybordCtrl.html そこで簡単なhtmlページを作り、javascriptの「confirm」を使って確認メッセージを表示しました。 この確認メッセージの「OK」か「キャンセル」をVbscriptの「SendKeys」を使ってコントロールしようとしてるのですが全く反応しません。 何がいけないのでしょうか? もちろん確認メッセージはアクティブの状態です。 開いたIEのオブジェクトなどでコントロールしないといけないのでしょうか? ちなみに、html内のjavascriptは次のようにしています。 <script Language="JavaScript"> <!-- confirm("よろしいですか?") //--> </script> Vbscriptは次の通りです。 Set objWshShell = Wscript.CreateObject("Wscript.Shell") Set objIE = CreateObject("InternetExplorer.Application")'IEの起動 objIE.Visible = True 'IEウィンドウを表示 siteurl = "http://テスト用のサイト/test.html" objIE.Navigate2 siteurl'指定ページを開く While objIE.ReadyState <> 4 Or objIE.Busy = True WScript.Sleep 1000 Wend objWshShell.SendKeys("{enter}") objIE.Quit Set objIE = Nothing WScript.quit
- ベストアンサー
- Visual Basic
お礼
自動化入力したいサイトにあわせて 教えていただいた改良を加えると上手く動きました。 ループ抜けもなんとかできているようです。たまにエラーがでますが。 ありがとうございました。
補足
ループ抜けって具体的にどう書けばいいでしょうか。 必ず「セキュリティ警告」がでるわけはないので、 まさに永久ループにはまりそうです。 一度クリックするとしばらくはセッションが残るのか 繰り返しスクリプトを走らせると聞いてこない場合がありまして。 とりあえずこれでやってみます。ありがとうございます。