dポイントプレゼントキャンペーン実施中!

以下の2つのサイトを参考にIEの自動処理を作っています。

「IE 画面を、スクリプトで操作する (パソコン便利ツール集)」
http://makoto-watanabe.main.jp/htmlDOM.html
「WSH JScriptを使いこなそう ~キーボード操作~」
http://3rd.geocities.jp/kaito_extra/Source/Keybo …

そこで簡単な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

A 回答 (1件)

当方のWindows XP, Internet Exploret 8で、ローカルのハードディスク上のhtmlファイルを開いて試してみたところ、



objWshShell.SendKeys("{enter}")

の前に

objWshShell.AppActivate("Internet Explorer")
WScript.Sleep 100

とか

objWshShell.AppActivate("Web ページからのメッセージ")
WScript.Sleep 100

とか入れるとうまくいくようでした。

ただ、セキュリティの設定がよくわからずActiveXコントロールの警告を消せなかったのでその対策にもSendkeysを使ったりしているうえに、そもそも私がこの分野にはあまり詳しくないので、残念ながらあまり自信はありません。

この回答への補足

どうやら、原因が解りました。

次の部分、

While objIE.ReadyState <> 4 Or objIE.Busy = True
WScript.Sleep 1000
Wend

ここが原因で、ずっとwait(待ち状態)してまして、この処理をリマークにしましたらうまくいくようになったようです。
これからさらに調査が必要ですが、ひとまず、締め切らせていただきます。

補足日時:2013/11/25 20:32
    • good
    • 1
この回答へのお礼

ありがとうございます。
返事が遅くなりました。

そうですよね。
そのようにやっても見たのですが、私の環境(Windows7、IE10)だとうまく動作しないんです。
IEのバージョンの問題なのだろうか?

しばらく待って、他に回答が無ければ締め切らせていただきます。

お礼日時:2013/11/25 17:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!