C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.73891 の関連記事表示

<< 0 >>
■73891  たまに発生するエラーについて
□投稿者/ ikuo -(2014/11/12(Wed) 22:53:00)

    分類:[VBScript] 

    お世話になります。

    環境:Windows7 32bitPro
    IE Version 7.0

    上記の環境において
    下記のプログラミングを実行した場合、IEが表示され、指定のサイトが開くのですが
    どういう操作をしたら出るのかわかりませんが、稀に右のようなエラーが発生します。 &#65375;オブジェクトでサポートされていないプロパティまたはメソッドです。:objWindow.Visible&#65376;

    ホームページを参考にしたスクリプトがだめなのでしょうか…わかる方、教えてください。お願いします。





    Option Explicit

    '---- IEオブジェクト ----
    Dim objExplorer
    Dim strURL
    Dim shell
    Dim application
    Dim objWindow
    Dim objProcList
    Dim objProcess

    '----objWindow.Visibleを参照するときに、「オブジェクトでサポートされていないプロパティまたはメソッドです。」の例外が発生する場合があるので
    'IE起動前にこの例外が発生しないかチェックする。例外が発生した場合は起動しているIEの全プロセスを終了する。----
    Set application = CreateObject("Shell.Application")
    On Error Resume Next 'エラー処理を有効
    for each objWindow in application.Windows
    If objWindow.Visible=False And objWindow.ToolBar<>False And objWindow.LocationURL="" Then
    '何もしない
    End If
    if Err.Number <> 0 then
    Set objProcList = GetObject("winmgmts:").InstancesOf("win32_process")
    For Each objProcess In objProcList
    If LCase(objProcess.Name) = LCase("iexplore.exe") Then
    objProcess.Terminate
    end if
    Next
    Set objProcList = nothing
    Set objProcess = nothing
    Exit For
    end if
    Next
    Err.Clear 'エラーのクリア
    On Error Goto 0 'エラー処理を無効


    '---- 起動URL ----
    strURL = "http://www.yahoo.co.jp"

    ' ---- IEオブジェクト生成 ----
    Set shell = WScript.CreateObject("WScript.Shell")
    shell.run "IExplore.EXE -nohome",0
    Set application = CreateObject("Shell.Application")
    Do
    for each objWindow in application.Windows
    If objWindow.Visible=False And objWindow.ToolBar<>False And objWindow.LocationURL="" Then
    Set objExplorer = objWindow
    Exit For
    End If
    Next
    Loop While IsEmpty(objExplorer)

    objExplorer.Top = 2000
    objExplorer.Left = 0
    objExplorer.Visible = 1
    objExplorer.Navigate strURL
    objExplorer.ToolBar = 0
    objExplorer.StatusBar = 0
    objExplorer.Width=1024
    objExplorer.Height = 735
    objExplorer.Top = 0

    Set shell = nothing
    Set application = nothing
    Set objWindow = nothing
親記事 /過去ログ124より / 関連記事表示
削除チェック/

■73921  Re[1]: たまに発生するエラーについて
□投稿者/ ainax -(2014/11/14(Fri) 16:23:03)
    No73891 (ikuo さん) に返信

    application.Windows の中身を for each を使って取得しているようですが、 IE 以外のオブジェクトで
    Visible プロパティが実装されていないオブジェクトを最初に取得してしまった場合にエラーが
    出るのではないでしょうか?

    下記に解決策が書かれてるかもしれません。
    http://oshiete.goo.ne.jp/qa/5193384.html
記事No.73891 のレス /過去ログ124より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -