Что нового

ObjGet для classname Shell.Explorer.1 вываливается с ошибкой.

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
По логике код
Код:
$oIE = ObjGet ( "" ,"Shell.Explorer.1") ;Class identifier. Can be in either ProgID or the string representation of the CLSID.
должен возвращать объект IE. Но вот у меня, вываливается с ошибкой: Указанный ключ соответствия не обнаружен ни в одном из активных контекстов активации.

Вот полный код:
Код:
#include <winapiex.au3>
$oIE = ObjGet ( "" ,"Shell.Explorer.1") ;Class identifier. Can be in either ProgID or the string representation of the CLSID.
_WinAPI_ShowLastError()
;~ Указанный ключ соответствия не обнаружен ни в одном из активных контекстов активации.

Почему так.. не пойму..
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Потому что здесь должно быть objcreate.
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
objcreate создаст новый объект, а ObjGet должен возвратить ссылку на уже существующий com объект. Например, если я открою IE, то такой объект существует, и логично предположить, что ObjGet должна сработать, хотя это не так... :stars:
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
В таком варианте ObjGet ( "" ,"Shell.Explorer.1"), как я понимаю, получает ссылку на объект, кой уже имется в существующих процессах. Ты можешь вызвать объект из длл - это 1 параметр этой функции.
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Странно то что пример из справки
Код:
Local $oExcel = ObjGet("", "Excel.Application") ; Получает существующий объект Excel
получает ссылку на объект Excel.Application.. а для Shell.Explorer.1 или Shell.Application или Shell.Explorer.2 не работает...
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Что тебе не понятно? Или вызывай объект из длл или получай от objcreate.
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
мне не понятно почему objget не возращает объект, и вываливается с ошибкой.
 
Верх