- - PR -
C# JavaScriptのAlertメッセージを閉じたい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-04-26 23:32
初めまして。
簡単にできると思っていたところで、つまづいてしまい先に進めません。 色々の解決方法を探ったのですが、検索ワードが悪いのか、見つかりませんでした。 以下のような、コードでIEを操作しているのですが、JavaScriptのAlertメッセージがでてしまうと、手動でクリックする以外はC#の処理が先に進みません。 GetForegroundWindowでもAlertウィンドウのHwndは取得できませんでした。 別にアプリを作り監視させておけば、Alertウィンドウを閉じることはできると思うのですが、他に何か良い方法はありませんでしょうか? //以下C#コード SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer(); IE.Visible = true; object Dummy = System.Type.Missing; IE.Navigate("C:\\test.html", ref Dummy, ref Dummy, ref Dummy, ref Dummy); HTMLDocument doc = IE.Document as HTMLDocument; ((mshtml.HTMLInputTextElement)doc.all.item("btnName", 0)).click(); System.Threading.Thread.Sleep(100);//メッセージ表示の待ち時間 SendKeys.Send("{ENTER}");//これでAlertウィンドウのOKボタンを押したいけど、押せない //C#コード ここまで (test.htmlファイル) <HTML> <BODY> <FORM> <INPUT TYPE=button value="ボタン" name="btnName" onclick="JavaScript:alert('メッセージ')"> </FORM> </BODY> </HTML> (ここまで) ご教授のほど、よろしくお願いいたします。 [ メッセージ編集済み 編集者: REVO 編集日時 2006-04-27 00:05 ] |
|
投稿日時: 2006-04-27 01:39
自己スレです。
なんとなく、しょぼいのですが、Threadを使ってできました。 SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer(); IE.Visible = true; object Dummy = System.Type.Missing; Thread threadA = new Thread(new ThreadStart(ThreadMethod)); threadA.Start(); IE.Navigate("C:\\test.html", ref Dummy, ref Dummy, ref Dummy, ref Dummy); HTMLDocument doc = IE.Document as HTMLDocument; ((mshtml.HTMLInputTextElement)doc.all.item("btnName", 0)).click(); private static void ThreadMethod() { Thread.Sleep(1000); SendKeys.SendWait("{ENTER}"); } |
1