2011-02-03 13 views
3

私はC#、MSHTML、InternetExplorerオブジェクトを使用してWebページを実行していますが、問題に悩まされています。MSHTML/IExplorerを使用してモーダルダイアログオブジェクトをキャプチャします。

基本的に、IE7以前ではwindow.showModalDialogが呼び出されたときにNewWindow3イベントがトリガーされていました。

IE8とIE9では、NewWindow3は決して起動されません。 MSDNが書いているように、「NewWindow3イベントは、Internet Explorerの新しいインスタンスが作成される直前に発生します。showModalDialogまたはshowModelessDialogの呼び出しは、Internet Explorerの新しいインスタンスではないため、イベントをトリガーしません。 HTMLコンテンツをレンダリングして表示することはできますが、ドキュメント間のハイパーリンクは表示できません」 (http://msdn.microsoft.com/en-us/library/aa768337(v=VS.85).aspx)

私はモーダルダイアログビーイングを取り込むに近づくことができました唯一の方法トリガされましたが、私は実際のモーダルオブジェクトへのアクセス権がありません - WindowStateChangedイベントを使用しています。このイベントは日常的に呼び出されていますが、dwFlags == 1およびdwValidFlagsMask == 3のときには、通常、モーダルダイアログのためにブラウザが無効になっていることに気付きました...

そのモーダルダイアログオブジェクトを取得する方法です。どんな助けも大いにありがたく思うでしょう。

答えて

0

それはすべてあなたのWindows UAC設定によって決まります。セキュリティ上の理由から、UACが中程度以上に設定されている場合、UACはモーダルダイアログへのアクセスを防ぎます。これらの設定を低くすると、NewWindowイベントでモーダルダイアログに完全にアクセスできます

+0

これらのモーダルダイアログへのアクセス方法を今から調べようとしています。これはすばらしい発見のように聞こえる。しかし、それは私のために働いていない。私はUACの設定をすべてダウンしており、NewWindow2とNewWindow3の両方に接続しています。あなたの質問では、NewWindow3について言及しましたが、あなたの答えであなたはNewWindowについて言及しました。あなたはNewWindow3を意味しましたか?またはNewWindowに接続する方法を見つけましたか?私はそれに接続する方法を理解しようとしていますが、InternetExplorerとIWebBrowser2はそれを公開しません。ちょうどNewWindow2とNewWindow3です。どんな助けも大いにありがたくなるでしょう。 –

+1

NewWindowにも添付されています。私はIE8の32ビットWindows 7 64ビットです。どのようなOSとIEのバージョンがこれに取り組んだのですか? –

関連する問題