|
안녕하세요. 멀더입니다.
void __fastcall TfmBwr::WebWait2()
{
while(CppWebBrowser1->Busy) Application->ProcessMessages();
}
Navigate한후,
위의 함수를 호출하시거나, OnNavigateComplete2 Event를 이용하시기 바랍니다.
세즈 님이 쓰신 글 :
: 인터넷 브라우져를 올려놓고
: Navigate 함수를 사용하여 페이지를 띄우고
: 그 띄운 결과에서 소스값을 받아서 데이터 처리를 하려고 합니다.
: 띄운 결과에서 소스값이 나올려면 페이지가 다 뜬뒤에 소스를 받아서 연산처리를 거쳐 특정 값을 줘야만 하는데...
: 이노무 것이 페이지가 다 뜨지도 않았는데 소스를 받으려고 하고 연산처리까지 빈 값으로 해버리더군요.
: 이같은경우 wait 이라든지 다른 뭔가가 방법이 있을듯 한데요.
: 혹시 이러한 문제를 해결하는 방법을 아시는분 계신가요???
:
:
:
:
: Memo1->Text = ""; //Memo1 Data Clear!!!
: CppWebBrowser1->Navigate(url);
:
: //요기 사이에 뭔가 들어가던가 해야될듯한데...
:
: if(Memo1->Text.SubString(1,5)=="data=")
: {
: NewNode->SubItems->Add(Get_nlevel(Memo1->Text.SubString(7,8)));
: //ShowMessage("nlevel");
: NewNode->SubItems->Add(Get_ntemp(Memo1->Text.SubString(7,8)));
: //ShowMessage("ntemp");
:
:
: void __fastcall TDeviceForm::CppWebBrowser1DocumentComplete(
: TObject *Sender, LPDISPATCH pDisp, Variant *URL)
: {
: Edit1->Text = CppWebBrowser1->LocationURL;
: IDispatch *Document;
: //err
: Document = CppWebBrowser1->Document;
: IHTMLElement *HTMLElement;
: IHTMLDocument2 *pHTMLDocument;
: HRESULT hr;
:
: WideString HTML;
: WideString Text;
: hr = Document->QueryInterface(IID_IHTMLDocument2,(void**)&pHTMLDocument );
: if ( hr == S_OK )
: {
: hr = pHTMLDocument->get_body(&HTMLElement);
: if ( hr == S_OK )
: {
: HTMLElement->get_innerHTML(&HTML);
: HTMLElement->get_innerText(&Text);
: HTMLElement->Release();
: }
: pHTMLDocument->Release();
: }
: Memo1->Lines->Clear();
: Memo1->Lines->Add(HTML);
: }
|