2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« コンテキストメニュー拡張からスクリプトを入力して実行する。 | トップページ | IExplore.exeを起こして、そのIEのオブジェクトを正確に捕捉する。(VBA編) »

2007年10月 6日 (土)

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編) »