ICABookBuilderAutomationApp

[ uuid(52E542B1-5655-4b89-810B-44AF5A103CF6) ,
   oleautomation,
   dual
 ]
 interface ICABookBuilderAutomationApp : IDispatch 
 {
  [id(1), helpstring("method AddJob")] HRESULT AddJob([in] BSTR bstrBookGUID, [in] BSTR bstrFolderPath, [in] BSTR bstrURL, [in] BSTR bstrLinkText, [in] BSTR bstrProfileName,[in] long nDownloadLevel, [in] VARIANT_BOOL vbLinkTextAsArticleTitle, [in] VARIANT_BOOL bExecuteScript, [in] long nFlags);
  [id(2), helpstring("method StartDownload")] HRESULT StartDownload();
  [id(3), helpstring("method StopDownload")] HRESULT StopDownload();
 };
 
ProgID
CyberArticle.CABookBuilderAutomationApp
C/C++头文件
BookBuilder_i.h; BookBuilder_i.c
 

方法:AddJob

添加一个任务进行下载

参数

[in] BSTR bstrBookGUID:书籍GUID
[in] BSTR bstrFolderPath:保存路径
[in] BSTR bstrURL:URL
[in] BSTR bstrLinkText:链接文字
[in] BSTR bstrProfileName:配置文件名称,一般是Default
[in] long nDownloadLevel:下载深度。0-3。0表示不下载网页里面的链接。1表示下载一级链接,依次类推。
[in] VARIANT_BOOL vbLinkTextAsArticleTitle:是否将链接文字作为标题。
[in] VARIANT_BOOL bExecuteScript:是否执行网页里面的脚本
[in] long nFlags:其它选项。一般为0

返回

 

方法StartDownload

开始下载

参数

返回

 

方法StopDownload

停止下载

参数

返回

例子

将IE收藏夹内容导入到CyberArticle里面

//导入一个目录下面的所有链接,采用递归
//bookguid: 目标书籍GUID
//folderpath: 导入后文章的路径
//objCABookBuilder: CyberArticle.CABookBuilderAutomationApp对象
//objShell: WSript.Shell对象
//objFileSystem: Scripting.FileSystemObject对象
//path: 需要导入的路径
//
function ImportPath(bookguid, folderpath, objCABookBuilder, objShell, objFileSystem, path)
{
    //获得路径对象
    var objFolder = objFileSystem.GetFolder(path);
    //枚举文件
    var objSubfilesEnum = new Enumerator(objFolder.Files);
    for (; !objSubfilesEnum.atEnd(); objSubfilesEnum.moveNext())
    {
        //获得文件
        var filename = objSubfilesEnum.item();
        var objFile = objFileSystem.GetFile(filename);
        //
        var strFileTitle = objFile.Name;
        var pos = strFileTitle.indexOf(".url");
        if (-1 != pos)
        {
            //如果是.url文件
            strFileTitle = strFileTitle.substring(0, pos);
            //objShell.Popup("file name is: " + filename);
            //
            try
            {
                var objShortcut = objShell.CreateShortcut(filename);
                //
                //objShell.Popup(objShortcut.TargetPath);
                var url = objShortcut.TargetPath;
                //
                //添加一个url进行下载
                objCABookBuilder.AddJob(bookguid, folderpath, url, strFileTitle, "Default", 0, true, true, 0);
            }
            catch (e)
            {
            }
        }
    }
    //枚举子文件夹
    var objSubfoldersEnum = new Enumerator(objFolder.SubFolders);
    for (; !objSubfoldersEnum.atEnd(); objSubfoldersEnum.moveNext())
    {
        var subfolder = objSubfoldersEnum.item();
        //
        var objSubFolder = objFileSystem.GetFolder(subfolder);
        var subfoldername = objSubFolder.Name;
        //导入子文件夹
        ImportPath(bookguid, folderpath + "\\" + subfoldername, objCABookBuilder, objShell, objFileSystem, subfolder);
    }
}
//CyberArticle.CAAutomationApp对象
var objCA = new ActiveXObject("CyberArticle.CAAutomationApp");
//获得选中的节点
var objSelectedNodes = objCA.SelectedNodes;
if (objSelectedNodes != null && objSelectedNodes.Count > 0)
{
    var objShell = new ActiveXObject("WScript.Shell");
    //
    //获得第一个选中的节点
    var objSelectedNode = objSelectedNodes.Item(0);
    if (objSelectedNode.Type != 0)
        objSelectedNode = objSelectedNode.ParentNode;
    //
    //获得书籍信息和相应的目录路径
    var strBookGUID = objSelectedNode.Book.GUID;
    var folderpath = objSelectedNode.GetTitlePath(true, false);
    //objShell.Popup("title path: " + folderpath);
    //创建BookBuilder对象,用来下载链接
    var objCABookBuilder = new ActiveXObject("CyberArticle.CABookBuilderAutomationApp");
    //获得收藏夹路径
    var strPath = objShell.SpecialFolders("Favorites");
    strPath = objShell.ExpandEnvironmentStrings(strPath);
    //objShell.Popup(strPath);
    //获得文件夹对象
    var objFileSystem = new ActiveXObject("Scripting.FileSystemObject");
    //导入文件夹
    ImportPath(strBookGUID, folderpath, objCABookBuilder, objShell, objFileSystem, strPath);
    //开始下载
    objCABookBuilder.StartDownload();
}