截取网页快照的dll

                                              截取网页快照的dll
                                    飘飘白云 (http://www.cppblog.com/kesalin
     
这个dll的功能是将在后台(也可指定参数是否显示)用安静模式(也就是不执行JavaScript,ActiveX以及Java程序)打开指定网址,并将网页截屏保存成png格式的图片。


dll src以及测试程序下载:点击这里

如下测试程序所示:

截取网页快照的dll_第1张图片


将得到我的cppblog首页的快照图:

截取网页快照的dll_第2张图片

 

 

下面来说说如何使用这个dll,我写了一个装载dll的帮助文件LuoSnapShotImport.h ,只需要include这个头文件就很可以很方便地使用了。使用步骤如下:

 

Step 1: 包含相关头文件,载入dll文件

//  Include header files for LuoSnapShot.
#include  " include/LuoSnapShot.h "
#include 
" include/LuoSnapShotImport.h "

//  Import lib
#ifdef _DEBUG
#pragma comment(lib, 
" bin/LuoSnapShot_Debug.lib " )
#else
#pragma comment(lib, 
" bin/LuoSnapShot.lib " )
#endif


Step 2: 创建snapshot对象,并装载 dll 并初始化,最后清理

LuoSnapShot::UActivator *  g_pLuoSnapShot;

/* *
* @brief      : Initialize LuoDnd
* @param      : 
* @return     : bool
*/

bool  InitLuoSnapShot()
{
    HRESULT hRslt 
=  LuoSnapShot::Activate_import(
        L
" activator " ,
        (
void ** ) & g_pLuoSnapShot);

    
if  (FAILED(hRslt))  {
        
return   false ;
    }


    hRslt 
=  g_pLuoSnapShot -> Initialize();
    
if  (FAILED(hRslt))  {
        g_pLuoSnapShot
-> Uninitialize();
        g_pLuoSnapShot 
=  NULL;
        
return   false ;
    }


    
return   true ;
}


/* *
* @brief      : Uninitialize LuoDnd
* @param      : 
* @return     : 
*/

void  UninitLuoSnapShot()
{
    
if  (g_pLuoSnapShot  !=  NULL)  {
        g_pLuoSnapShot
-> Uninitialize();
        g_pLuoSnapShot 
=  NULL;
    }

}



Step 3: 调用snapShot的AddWebItem函数,截取网页快照。参数WebItem的详细说明如下:

Uri      -- 以http://或https://打头的网址
Path    -- 保存快照图片的绝对路径
ImageWidth -- 保存快照图片的宽度
ImageHeight -- 保存快照图片的高度
Target    --  消息回调窗口(默认为NULL)
Message -- 回调消息(默认为)
Cookie  -- 此次截屏的辨识符号(默认为0)
ShotDelay -- 截屏延迟时间
NavigateTimeout -- 网页打开超时时间
Show  -- 截屏的时候是否显示网页(调试用)
PageWidth -- 如果Show  为true,前台显示网页的宽度
PageHeight -- 如果Show  为true,前台显示网页的高度

     void  capture( const  LPCWSTR url,  const  LPCWSTR savePath)
    
{
        
if  (g_pLuoSnapShot)  {
            LuoSnapShot::WebItem item;
            item.Uri 
=  url;
            item.Path 
=  savePath;
            item.Show 
=   true ;

            item.ImageWidth 
=   640 ;
            item.ImageHeight 
=   480 ;

            item.Target 
=   * this ;
            item.Message 
=  LuoSnapShot::WM_LUO_SNAPSHOT_CALLBACK;
            item.Cookie 
=   ++ count;

            item.PageWidth 
=   1024 ;
            item.PageHeight 
=   768 ;

            item.ShotDelay 
=   2   *   1000 ;
            item.NavigateTimeout 
=   20   *   1000 ;

            g_pLuoSnapShot
-> AddWebItem( & item);
        }

    }

 

 

你可能感兴趣的:(JavaScript,测试,null,dll,import,include)