- PR -

C# JavaScriptのAlertメッセージを閉じたい

1
投稿者投稿内容
REVO
会議室デビュー日: 2006/04/26
投稿数: 2
投稿日時: 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 ]
REVO
会議室デビュー日: 2006/04/26
投稿数: 2
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)