Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] ObjGet находит объект экселя, но не находит объект IE, почему?

Ответить
Настройки темы
[решено] ObjGet находит объект экселя, но не находит объект IE, почему?

Старожил


Сообщения: 186
Благодарности: 4

Профиль | Отправить PM | Цитировать


Сабж, для иллюстрации маленький примерчик:
Код: Выделить весь код
$oExcel = ObjGet("","Excel.Application")
$oIE = ObjGet("","InternetExplorer.Application")
msgbox(0,0,"IsObj($oExcel)=" & IsObj($oExcel) & @CRLF & "IsObj($oIE)=" & IsObj($oIE))
Разумеется, и книга экселя, и окна IE на момент исполнения скрипта запущены.

Отправлено: 11:49, 15-08-2010

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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»
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:31, 15-08-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 186
Благодарности: 4

Профиль | Отправить PM | Цитировать


Спасибо! Я разобрался

Отправлено: 14:22, 21-08-2010 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] ObjGet находит объект экселя, но не находит объект IE, почему?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] ObjGet дает ссылку не на тот объект evg64 AutoIt 1 12-09-2009 02:28
Разное - Один антивирус находит, другой не находит...? jorikello Флейм 26 20-01-2009 01:33
[решено] объект js bruder Вебмастеру 2 24-05-2008 02:10
Сохранить объект как... в IE 6 AMM Microsoft Windows 2000/XP 1 30-05-2007 10:15
Почему комп при соединении не находит SHISH Сетевые технологии 2 01-01-2003 19:14




 
Переход