ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  405  : 記事  5  : コメント  12059  : トラックバック  134

ニュース

記事カテゴリ

書庫

日記カテゴリ

Communities

Personal Information

Legacy の VB とかで shdocvw を利用して、IE を操作するなんてことこれまでは一般的なわけでしたが、Vista で IE の "保護モード" が有効な場合(default)、操作できることは非常に限られるようです。

Navigate method なんかは普通に利くんですが、document property を利用して MSHTML.HTMLdocument を取得しようとすると例外が発生します。

Sub Test()
    Const TARGET_URL = "http://hogehogehoge2.com/"
    Dim objIE As SHDocVw.InternetExplorer
    Dim objHtmlDoc As MSHTML.HTMLDocument
    
    Set objIE = New SHDocVw.InternetExplorer
    objIE.Navigate TARGET_URL
    Do While objIE.busy
        DoEvents
    Loop
    
    'ここで、例外 0x80004005 発生
    Set objHtmlDoc = objIE.document
    Do While objHtmlDoc.readyState <> "complete"
        DoEvents
    Loop
    objIE.Visible = True
End Sub

IE の "保護モード" を無効化することにより、XP と同様に扱えるようですが、Vista の merit を消すことになりますので、熟考する必要性ありかな。

XMLHTTP は問題なく使えるようなので、IE を操作することはやめて、XMLHTTP で HTTP 通信を行うようにした方が良いっぽいです。

投稿日時 : 2007年3月10日 22:50

コメント

# re: Vista の IE で "保護モード" が有効な場合、shdocvw で操作できることが非常に限られる 2007/03/11 3:43 ちゃっぴ
ちなみに元ネタ
VistaにてIE操作エラー
http://www2.moug.net/bbs/exvba/20070309000053.htm

なぜダメなのかわかりました。
結論としては、SHDocVw.InternetExplorer を呼び出したときに使われる window と navigate したときの window が違うから。

内部的には、process も違っています。

IE の "保護モード" (protect mode) が有効な場合、process の トークン に low integarity level (low mandatory level の方がいいのかな?)が設定された状態で起動されます。

'explorer.exe' から 'iexplore.exe' を呼び出した場合には、low integarity level でいきなり 'iexplore.exe' が起動するのですが、automation の場合こうはいきません。

Automation を利用して IE を呼び出すと、"DCOM Proccess Launcher" service を実行している process である 'svchost.exe' の child process として 'iexplore.exe' が起動されます。

ただ、この時点での integarity level は medium です。

で、navigate method を発行すると、'ieuser.exe' の child process として、'iexplore.exe' が low integarity level で起動します。


一応回避策としては、Shell32.Shell の Windows method からたどってやることで、対象の window を探し当て扱うことは可能です。

ただし、その window を特定することがまた大変と思われます。
# Automation からのみでは確実な方法は無いでしょう。

あちらは log がそのうち消えるので、こういうネタは残しとかんと。。。

# re: Vista の IE で "保護モード" が有効な場合、shdocvw で操作できることが非常に限られる 2007/03/11 4:02 ちゃっぴ
参考

Understanding and Working in Protected Mode Internet Explorer
http://msdn2.microsoft.com/en-us/library/bb250462.aspx

情報が古いかも?

保護モードの Internet Explorer の理解と機能
http://www.microsoft.com/japan/msdn/ie/general/protectedmode.aspx

# re: Vista の IE で "保護モード" が有効な場合、shdocvw で操作できることが非常に限られる 2008/01/09 1:03 ちゃっぴ
Windows Vista SP1 RC1 v.668 での IE automation での変更点
http://blogs.wankuma.com/tyappi/archive/2008/01/09/116517.aspx

# sesrxuvm@live.com 2018/05/21 21:21 韓国 偽ブランド
銀座のエルメス専門店・アトゥール銀座/全品新品…バーキンから小物まで貴女のお探しのエルメス製品をご提供。
その他にもエルメスの素材集や色辞典等をご紹介しています。
エルメス バーキンの新品を多数揃える、東京・西麻布のエルメス専門店「西麻布レクラン」の通販サイト。
バーキンは国内屈指の取扱い数! ケリー、ボリード、ガーデンパー
ティ、ピコタンなどバッグ各種、財布も取り揃えております。
全商品国内配送料無料です。
エルメス(エルメス)新品商品を専門に扱うお店「ブランド館(BRANDKAN)」です。
バーキンをはじめケリー、ボリード、エヴリン、ピコタン、ガーデンパーティなど多数取り揃
えております。
青山のエルメス専門店・ルージュブラン青山/全品新品…バーキンからアパレルまで貴女のお探しのエルメス製品をご提供致します。
その他にもシャネル、ルイ・ヴィトンなども
取り扱っております。
財布 メンズ エルメス, エルメス アクセサリー ネックレス エルメス ヘルメス, ブランド人気バック エルメス 通販 公式, エルメス バーキン エルメスバッグ 新作, エ

# vuqwlphn@docomo.ne.jp 2021/10/29 9:46 正規品と同等品質のコピー品
https://www.cocoejp.com/ProductList1.aspx?TypeId=241132803082215バッグ,財布&小物専門店

# kjdbtk@softbank.ne.jp 2023/03/24 22:53 ロレックス偽物時計
財布を購入、注文した翌日に届いてびっくり。丁寧に梱包されていて、ショップからのお礼のメモもあり。品物は展示品でキズや汚れありって書かれてましたが、どこに??って感じで新品同様でした!ショップの評価が良かったので決めたのですが、間違いなかったです!!
ロレックス偽物時計 https://www.ginza24.com/product/detail/9170.htm

Post Feedback

タイトル
名前
Url:
コメント