HWND hWnd = NULL;
HWND phWnd = NULL;
HDC hDC = NULL;
char word[0xff];
AnsiString tmp = "--TRAY";
AnsiString titl = "";

hWnd = FindWindow("#32770", NULL);
if(hWnd)
{
	GetWindowText(hWnd, word, 0xfe);
	titl = AnsiString(word);
	phWnd = GetParent(hWnd);
	GetWindowText(phWnd, word, 0xfe);
	if(memcmp(word, tmp.c_str(),  tmp.Length()) != 0)
	return;

	hWnd = FindWindowEx(hWnd, 0, NULL, "확인");
	if(hWnd)
	{
		SendMessage(hWnd, WM_LBUTTONDOWN, 0, 0);
		SendMessage(hWnd, WM_LBUTTONUP, 0, 0);
		Memo1->Lines->Add("닫음 - " + titl);
	}
}

'코드' 카테고리의 다른 글

Cam  (0) 2010.08.10
unzip  (2) 2010.08.03
SQLPLUS에서 SQL DDL Export  (0) 2009.11.11
GNUstep Make파일을 만들다.  (0) 2009.10.22
AWK - 디스크 용량 분석  (0) 2009.10.13

//---------------------------------------------------------------------------

#include 
#include  
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "shdocvw_ocx"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TShellWindows *Sh = new TShellWindows(NULL);
    try
    {
        for(int i = 0; i < Sh->Count; i++)
        {
            if(Sh->Item(i) == NULL)
                continue;
            DoDrawImage(Sh->Item(i));
        }
    }
    __finally
    {
        delete Sh;
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DoDrawImage(IDispatch *Idisp)
{
    IWebBrowser2 *IE;
    IHTMLDocument2 *doc2;
    IHTMLElement*ele;
    IHTMLElement2 *ele2;
    IHTMLDocument3 *doc3;

    long bHeight, bWidth, height, width;

    Idisp->QueryInterface(IID_IWebBrowser2, (void **)&IE);
    if(IE == NULL)
        return;

    if(FAILED(IE->Document->QueryInterface(IID_IHTMLDocument2, (void **)&doc2)))
        return;

    if(FAILED(doc2->get_body(&ele)))
        return;

    if(FAILED(ele->QueryInterface(IID_IHTMLElement2, (void **)&ele2)))
        return;

    if(FAILED(ele2->get_scrollHeight(&bHeight)))
        return;

    if(FAILED(ele2->get_scrollWidth(&bWidth)))
        return;

    if(FAILED(IE->Document->QueryInterface(IID_IHTMLDocument3, (void **)&doc3)))
        return;

    if(FAILED(doc3->get_documentElement(&ele)))
        return;

    if(FAILED(ele->QueryInterface(IID_IHTMLElement2, (void **)&ele2)))
        return;

    if(FAILED(ele2->get_scrollHeight(&height)))
        return;

    if(FAILED(ele2->get_scrollWidth(&width)))
        return;

    width = (width > bWidth ? width : bWidth);
    height = (height > bHeight ? height : bHeight);

    IViewObject2 *vObj2;
    
    if(FAILED(IE->Document->QueryInterface(IID_IViewObject2, (void **)&vObj2)))
        return;

    TRect rect = Rect(0, 0, width, height);
    Graphics::TBitmap *bmp = new Graphics::TBitmap();
    bmp->Width = width;
    bmp->Height = height;


    OleCheck(vObj2->Draw(DVASPECT_CONTENT, 1, NULL, NULL, IE->Parent,
             bmp->Canvas->Handle, (const _RECTL *)&rect, NULL, NULL, 0));

    Image1->Picture->Bitmap->Assign(bmp);
    Image1->Repaint();

    vObj2->Release();
    delete bmp;
    IE->Release();
}
//---------------------------------------------------------------------------

'코드' 카테고리의 다른 글

IID_IViewObject::Draw  (0) 2008.07.21
ie의 스크롤 영영까지 포함해서 캡쳐하는 팁!  (0) 2008.07.21
TShellWindows  (0) 2008.07.14
[BCB] HtmlElements - TTreeView  (0) 2008.07.10
RegExp - JS  (0) 2008.07.02

+ Recent posts