IExplore.exeを起こして、そのIEのオブジェクトを正確に捕捉する。
Shell.Windows()の中から、起動したIEのオブジェクトを正確に捕捉するのは、なかなか厄介です。
乱数を発生させて、IEのフルパスの大文字小文字を以下のようにランダムに変えて、ie.FullNameで一意に特定します。
C:\pRoGram fIlES\INtERnEt expLoreR\iexplOre.Exe
これで、1/2**39の精度になります。
Set wShell=CreateObject("WScript.Shell")
Path=wShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\iexplore.exe\")
Randomize
FullName=UCase(Mid(Path,1,1))
For k=2 To Len(Path)
If Fix(Rnd*2) Mod 2 Then
FullName=FullName & UCase(Mid(Path,k,1))
Else
FullName=FullName & LCase(Mid(Path,k,1))
End If
Next
wShell.Run """" & FullName & """ -nohome",0
Set Shell=CreateObject("Shell.Application")
Do
For Each ie In Shell.Windows()
If ie.Visible Then
ElseIf ie.ReadyState<>0 Then
ElseIf ie.LocationURL<>"" Then
ElseIf ie.FullName=FullName Then
Exit Do
End If
Next
WScript.Sleep 100
Loop
ie.Visible=True
'ie.Navigate "about:blank"
'Do While ie.Busy Or ie.ReadyState<>4
' WScript.Sleep 100
'Loop
MsgBox ie.FullName
« コンテキストメニュー拡張からスクリプトを入力して実行する。 | トップページ | IExplore.exeを起こして、そのIEのオブジェクトを正確に捕捉する。(VBA編) »