현재 페이지의 모든 쿠키 읽어 오기
GetCookieAll 함수에 원하는 Document 포인터를 넘겨주면 그 안에 있는
모든 프레임의 쿠키를 읽어오는 함수다. 물론 고치면 쿠키 말고도 프레임들의
각종 정보를 다 얻을 수 있다. Document는 항상 접근 가능한 것이 아니므로
접근이 안될경우에 대한 예외처리를 잊지 말도록... 머 안해도 간간히 뜨는
경고창 닫아 가며 써도 괜찮다면야... -_-
함수에 문제가 있다면 혼자만 알지 말고 댓글로 달아주시면 감사하겠음!!! ㅋㅋㅋ
function GetBrowserForFrame(Document: IHTMLDocument2; FrameNumber: Integer): IWebBrowser2;
var
WebBrowser: IWebBrowser2;
Container: IOLEContainer;
Enumerator: ActiveX.IEnumUnknown;
FetchedNumber: PLongInt;
UnknownFrame: IUnknown;
hr: HRESULT;
begin
Result := nil;
FetchedNumber := nil;
Container := Document as IOleContainer;
hr := Container.EnumObjects(OLECONTF_EMBEDDINGS or OLECONTF_OTHERS, Enumerator);
if hr <> S_OK then
begin
Container._Release;
Exit;
end;
Enumerator.Skip(FrameNumber);
Enumerator.Next(1, UnknownFrame, FetchedNumber);
hr := UnknownFrame.QueryInterface(IID_IWebBrowser2, WebBrowser);
if hr = S_OK then
begin
Result := WebBrowser;
end;
end;
function GetCookieAll(Document: IHTMLDocument2): String;
var
i: Integer;
FrameDocument2: IHTMLDocument2;
WebBrowser: IWebBrowser2;
begin
Result := '';
for i:=0 to Document.frames.length-1 do
begin
WebBrowser := GetBrowserForFrame(Document, i);
if not Assigned( WebBrowser ) then
begin
Continue;
end;
FrameDocument2 := WebBrowser.Document as IHTMLDocument2;
if not Assigned( FrameDocument2 ) then
begin
Continue;
end;
if Pos(FrameDocument2.cookie, Result) = 0 then
begin
Result := Result + FrameDocument2.cookie;
end;
end;
end;
'델파이' 카테고리의 다른 글
[델파이] 예외 처리 클래스의 종류 (0) | 2009.11.13 |
---|---|
[델파이] DLL Injection (1) | 2009.06.17 |
[델파이] 기본 함수 정리 (0) | 2009.06.15 |
델파이에서 메모리 누수 확인 (0) | 2009.04.20 |
IE 기본 툴바에 버튼 생성하기 (0) | 2009.03.10 |
서버 상태 확인 (0) | 2009.01.12 |
BeforeNavigate2 이벤트에서 PostData 읽어오기 (GET 방식과 POST 방식의 구분) (0) | 2008.12.04 |
ActiveX의 ProgID 변경하기 (0) | 2008.11.26 |
생성자 오버로딩 하기 (0) | 2008.11.20 |
동적 IP, DNS 변경 함수 (0) | 2008.11.12 |