知识大全 Delphi中ScriptControl的高级应用

Posted

篇首语:忘掉失败,不过要牢记失败中的教训。。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi中ScriptControl的高级应用相关的知识,希望对你有一定的参考价值。

Delphi中ScriptControl的高级应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

在我们的Windows系统里提供了一个叫ScriptControl的OCX组件 我们可以用这个组件来实现脚本故事世界的精彩      创建ScriptControl组件服务    首先 我们来看一下该组件都有哪些方法和属性 如图      图      图     接着 我们用Delphi创建组件服务     从图 可知 该组件的ProgID为 MSScriptControl ScriptControl 所以我们可以这样创建组件     Var    sc : OleVariant;    begin    sc := CreateOleObject( MSScriptControl ScriptControl );    //使用Language属性来设定该组件所使用的语??    //语言可以为 VbScript JavaScript(也可缩写为JScript)    //相当于在HTML里用的

  

   Delphi中使用JavaScript的Base 的加解密算法    搜索google javascript base 加密 就会找到很多base 加密的代码 以下就是本人搜索到的一段代码(以下代码版权归其原作者)     var base EncodeChars = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +/     var base DecodeChars = new Array(                                                            )     function base encode(str)     var out i len     var c c c     len = str length     i =     out =     while(i < len)     c = str charCodeAt(i++) & xff     if(i == len)        out += base EncodeChars charAt(c >> )     out += base EncodeChars charAt((c & x ) < < )     out += ==     break         c = str charCodeAt(i++)     if(i == len)        out += base EncodeChars charAt(c >> )     out += base EncodeChars charAt(((c & x )< < ) | ((c & xF ) >> ))     out += base EncodeChars charAt((c & xF) < < )     out += =     break         c = str charCodeAt(i++)     out += base EncodeChars charAt(c >> )     out += base EncodeChars charAt(((c & x )< < ) | ((c & xF ) >> ))     out += base EncodeChars charAt(((c & xF) < < ) | ((c & xC ) >> ))     out += base EncodeChars charAt(c & x F)         return out         function base decode(str)     var c c c c     var i len out     len = str length     i =     out =     while(i < len)     /* c */    do     c = base DecodeChars[str charCodeAt(i++) & xff]      while(i < len && c == )     if(c == )    break     /* c */    do     c = base DecodeChars[str charCodeAt(i++) & xff]      while(i < len && c == )     if(c == )    break     out += String fromCharCode((c < < ) | ((c & x ) >> ))     /* c */    do     c = str charCodeAt(i++) & xff     if(c == )    return out     c = base DecodeChars[c ]      while(i < len && c == )     if(c == )    break     out += String fromCharCode(((c & XF) < < ) | ((c & x C) >> ))     /* c */    do     c = str charCodeAt(i++) & xff     if(c == )    return out     c = base DecodeChars[c ]      while(i < len && c == )     if(c == )    break     out += String fromCharCode(((c & x ) < < ) | c )         return out         function utf to (str)     var out i len c     out =     len = str length     for(i = i < len i++)     c = str charCodeAt(i)     if ((c >= x ) && (c < = x F))     out += str charAt(i)      else if (c > x FF)     out += String fromCharCode( xE | ((c >> ) & x F))     out += String fromCharCode( x | ((c >>  ) & x F))     out += String fromCharCode( x | ((c >>  ) & x F))      else     out += String fromCharCode( xC | ((c >>  ) & x F))     out += String fromCharCode( x | ((c >>  ) & x F))             return out         function utf to (str)     var out i len c     var char char     out =     len = str length     i =     while(i < len)     c = str charCodeAt(i++)     switch(c >> )        case case case case case case case case     // xxxxxxx    out += str charAt(i )     break     case case     // x xxxx  xx xxxx    char = str charCodeAt(i++)     out += String fromCharCode(((c & x F) < < ) | (char & x F))     break     case     // xxxx  xx xxxx  xx xxxx    char = str charCodeAt(i++)     char = str charCodeAt(i++)     out += String fromCharCode(((c & x F) < < ) |    ((char & x F) < < ) |    ((char & x F) < < ))     break             return out         这么长的一段代码 我们怎样才能以AddCode()的方法加入进去呢?     ) 第一种方法 把这么长的代码定义给一个字符串 这个工作量肯定非常大 而且容易出错      ) 第二种方法 把它定义到一个记事本里 程序运行的时候读入 安全性很低 容易被人修改 导致出错      ) 第三种方法 把它以资源文件的形式存放在一个Dll里 这种方法比较适合 以下我们就用这种方法来处理     生成DLL的步骤      ) 新建一个记事本 粘贴上面的代码 最后保存为Base txt      ) 新建一个记事本 写上以下代码 最后保存为 Base rc     Base File exefile Base txt      ) 同目录下新建一个批处理文件 保存为Base bat     Brcc exe Base rc     ) 编译成资源文件Res 双击执行Base bat 完后会生成一个Base res的文件 这个就是JavaScript脚本的资源文件      ) 新建一个DLL 保存为Base dpr 加上以下代码 然后编译成Base dll     library Base     $R Base RES    begin    end     这样 我们的资源文件打包成dll就完成了!    下面 我们的工作就是通过dll来读取JavaScript代码     读取资源文件到一个String变量    Function ReadResourc() String     Var    Hinst Thandle     Stream TResourceStream     CodeString TStrings     begin    Result =     //加载dll    Hinst =Loadlibrary( Base dll )     If Hinst= Then Exit     Try    //读取资源文件    Stream =TResourceStream Create(Hinst Base File exefile )     CodeString = TStringList Create()     Try    //将资源文件存放到列 cha138/Article/program/Delphi/201311/24677

相关参考

知识大全 Delphi初学者应小心的六大陷阱

Delphi初学者应小心的六大陷阱  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

高级氧化法的特性及其应用

目前水质污染的主要矛盾已从耗氧物质和生物污染转化为化学物质污染,因此美国国家研究委员会(NRC)在制定21世纪优先研究领域时把《环境中的化学品》列为今后20年应加以资助的六个重点领域之一。我国从200

高级氧化法的特性及其应用

目前水质污染的主要矛盾已从耗氧物质和生物污染转化为化学物质污染,因此美国国家研究委员会(NRC)在制定21世纪优先研究领域时把《环境中的化学品》列为今后20年应加以资助的六个重点领域之一。我国从200

高级氧化法的特性及其应用

目前水质污染的主要矛盾已从耗氧物质和生物污染转化为化学物质污染,因此美国国家研究委员会(NRC)在制定21世纪优先研究领域时把《环境中的化学品》列为今后20年应加以资助的六个重点领域之一。我国从200

知识大全 面试应热情还是低调

我顺利地通过了考官对我的初试,然后被通知进行复试,复试时考官中增加了两位来自总部的高级负责人。而半途中冒出的那句没头没脑的评论,我至今仍难以忘却。 一位高级负责人说:“你真的不错,问题也回答

知识大全 Delphi学堂之在Delphi中自己建立交叉表

Delphi学堂之在Delphi中自己建立交叉表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!fu

知识大全 Delphi中对象解除技巧

Delphi中对象解除技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Delphi程序设计

知识大全 DELPHI中使用API函数的方法

DELPHI中使用API函数的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  DELPHI的

知识大全 Delphi中使用纯正的面向对象方法

Delphi中使用纯正的面向对象方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Delphi的V

知识大全 Delphi字符串列表及应用(一)

Delphi字符串列表及应用(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Delphi应