IEオブジェクトが検出できないケースについて

解決


なかじ  2008-03-08 07:12:31  No: 144501

EXCEL2003にて、開発しています。

下記のようにシェルオブジェクトを作成して、
画面数文ループして、IEオブジェクトを検索していますが、
タスクバー上には存在しているが、下記のループでは、
検出できないPCがあるのですが、考えられるケースは
どのようなものがあるでしょうか?

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    'シェルのオブジェクトを作成する
    Set objShell = CreateObject("Shell.Application")

    '現在起動中のオブジェクト分繰り返す
    For Each objWindow In objShell.Windows
        Do While objWindow.Busy = True
            DoEvents  '特に何もしないで.Busyの状態が変わるまで待つ
        Loop
        'TypeNameでオブジェクト変数のタイプを表示する
        If TypeName(objWindow.document) = "HTMLDocument" Then
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜


KG  2008-03-08 08:53:10  No: 144502

>If TypeName(objWindow.document) = "HTMLDocument" Then
ここで検出しているなら、これを満たしていない・・・と考える
のが普通かと思います。

まずは、検出できないPCでTypeName(objWindow.document)を調査するところ
から始めてみてはいかがでしょうか。(テキストに出力する等)

#回答でなくてすみません。


なかじ  2008-03-11 04:26:37  No: 144503

返信、ありがとうございます。

上記の件は、既に調査をしており、
エクスプローラが2つ、IEが2つの状態では、
IShellFolderViewDual2  が2回呼ばれます。
IEが、どうも、検出できていないようです。
また、発生している環境は、
WindowsXP SP1 +.NET Framewore V.1.1
です。同じ環境の別PCでは検出できているようです。


Busy  2008-03-11 12:00:12  No: 144504

コードから言うと、.Busyが解けないってことじゃないの?


なかじ  2008-03-13 17:29:35  No: 144505

デバッグした内容は、
If TypeName(objWindow.document) = "HTMLDocument" Then
で、TypeName(objWindow.document)が、IShellFolderViewDual2  のため、
falseになると言うことです。
正常なパターンは、エクスプローラが2つ、IEが2つの場合は、
・IShellFolderViewDual2  →  多分、エクスプローラ
・IShellFolderViewDual2  →  多分、エクスプローラ
・HTMLDocument  →  多分、IE
・HTMLDocument  →  多分、IE
となります。


Busy  2008-03-14 01:57:21  No: 144506

なら、2+2=4ですべて検出されているんでしょ?


なかじ  2008-03-26 03:40:47  No: 144507

いえいえ、以下のようになります。
(1)正常なパターン  エクスプローラが2つ、IEが2つの場合
・IShellFolderViewDual2  →  多分、エクスプローラ
・IShellFolderViewDual2  →  多分、エクスプローラ
・HTMLDocument  →  多分、IE
・HTMLDocument  →  多分、IE
(2)今回のパターン  エクスプローラが2つ、IEが2つの場合
・IShellFolderViewDual2  →  多分、エクスプローラ
・IShellFolderViewDual2  →  多分、エクスプローラ
のみ


なかじ  2008-03-26 03:42:28  No: 144508

以下のVer.Upで解消されました。

(発生環境)WindowsXP SP1 +.NET Framewore V.1.1

(解消環境)WindowsXP SP2


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加