-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
ObjGet находит объект экселя, но не находит объект IE, почему?
Сабж, для иллюстрации маленький примерчик:
Код:
$oExcel = ObjGet("","Excel.Application")
$oIE = ObjGet("","InternetExplorer.Application")
msgbox(0,0,"IsObj($oExcel)=" & IsObj($oExcel) & @CRLF & "IsObj($oIE)=" & IsObj($oIE))
Разумеется, и книга экселя, и окна IE на момент исполнения скрипта запущены.
|
evg64, начиная с IE5, сие невозможно по причинам применяемой в IE модели безопасности. В принципе, можно попробовать пристыковаться к существующему экземпляру IE, перебрав коллекцию окон Проводника (на XP и IE6 такое работает):
Код:
AutoItSetOption("MustDeclareVars", 1)
Local $oShell = ObjCreate("Shell.Application")
Local $oShellWindows = $oShell.Windows
Local $i, $oWindow, $oIE
If $oShellWindows.Count > 0 Then
For $i = 0 To $oShellWindows.Count - 1
$oWindow = $oShellWindows.Item($i)
; Для отладки:
ConsoleWriteError(($i + 1) & " [" & ObjName($oWindow.Application.Document) & "]" & @CRLF)
If ObjName($oWindow.Application.Document) = "DispHTMLDocument" Then
$oIE = $oWindow.Application
; После первого же найденного окна IE — выходим из цикла
ExitLoop
EndIf
Next
If IsObj($oIE) Then
ConsoleWrite($oIE.Document.Title & " [" & $oIE.Document.URL & "]" & @CRLF)
EndIf
EndIf
; …
Exit(0)
Результат…
Код:
Яндекс [http://www.ya.ru/]
1 [IShellFolderViewDual2]
2 [DispHTMLDocument]
На VBScript вместо «DispHTMLDocument» возвращается «HTMLDocument»
|
Время: 15:30.
© OSzone.net 2001-