2013-10-07 2 views
0

Internet Explorer_Server 임베디드 컨트롤을 사용하는 공급 업체의 클라이언트 기반 응용 프로그램 용 기능 테스트 스크립트를 작성하고 있습니다. 나는 HTML을 읽고 정보를 확인할 수 있도록 객체를 가져 오는 데 어려움을 겪고 있습니다. 내부 컨트롤에 대한 핸들을 얻을 수 있고 oleacc.dll의 ObjectFromLresult 함수를 사용하여 개체를 가져 오려고합니다. 아아, 80020009로 인해 액세스가 거부되었습니다.oleacc.dll 오류 - 액세스 거부 오류 80020009

나는이 작업을 원하거나 적어도 그것이 왜 실패하고 있는지 정확히 알고 싶습니다. 여기 코드는 다음과 같습니다

DllCall("ole32.dll", "long", "CoInitialize", "ptr", 0) 

Local $typUUID = DllStructCreate("int;short;short;byte[8]") 
DllStructSetData($typUUID, 1, 0x626FC520) 
DllStructSetData($typUUID, 2, 0xA41E) 
DllStructSetData($typUUID, 3, 0x11CF) 
DllStructSetData($typUUID, 4, 0xA7, 1) 
DllStructSetData($typUUID, 4, 0x31, 2) 
DllStructSetData($typUUID, 4, 0x0, 3) 
DllStructSetData($typUUID, 4, 0xA0, 4) 
DllStructSetData($typUUID, 4, 0xC9, 5) 
DllStructSetData($typUUID, 4, 0x8, 6) 
DllStructSetData($typUUID, 4, 0x26, 7) 
DllStructSetData($typUUID, 4, 0x37, 8) 
If IsDllStruct($typUUID) Then 
    ConsoleWrite("$typUUID is a DLL Struct." & @LF) 
Else 
    ConsoleWrite("$typUUID is NOT a DLL Struct." & @LF) 
EndIf 

$lResult = 49263 


Local $aRet = DllCall("oleacc.dll", _ 
    "long", "ObjectFromLresult", _ 
    "lresult", $lResult, _ 
    "struct*", $typUUID, _ 
    "wparam", 0, _ 
    "idispatch*", 0) 
If @error Then Return SetError(3, @error, 0) 


If IsObj($aRet[4]) Then 
    ConsoleWrite("$aRet[4] is an object!" & @lf) 
    Local $oIE = $aRet[4] .Script() 
    ; $oIE is now a valid IDispatch object 
    Return $oIE.Document.parentwindow 
Else 
    Return SetError(1, $aRet[0], 0) 
EndIf 

일부 노트 :

* IsDllStruct 검사가 successfun와 $ typUUID는 DLL이 구조체는 것을보고합니다.

* $ lResult는 Internet Explorer_Server 내부/포함 된 컨트롤의 핸들입니다.

* 배열 위치 $ aRet [4]의 데이터는 개체입니다. Return $oIE.Document.parentwindow

답변

-1

시도가

#include <IE.au3> 

$oIE = _IEAttach("[REGEXPTITLE:ICQ; INSTANCE:2]", "embedded", 3) 

을 사용할 때까지

*이 예제는 임베디드 IE 컨트롤을 사용하고 ICQ 클라이언트에 연결하는 방법을 보여줍니다 오류가 없습니다.

+0

_IEAttach()가 실패합니다. 따라서 루트 코드를 사용해야했습니다. – Colyn1337

+0

올바른 창을 목표로 100 % 확신하십니까? _IEErrorHandlerRegister를 사용하여 실패한 이유를 확인하십시오. – Milos

+0

예, 저는 있습니다. 그렇습니다. 문제의 제목에 오류가 있습니다. – Colyn1337

관련 문제