初心在我心 發表於 2019-5-28 14:35:00

教程-执行动态的delphi脚本

<p>相关资料:https://www.cnblogs.com/linyawen/archive/2011/10/01/2196950.html</p>
<p>如何在程序中执行动态生成的Delphi代码&nbsp;<br><br>经常发现有人提这类问题,或者提问内容最后归结成这种问题&nbsp;<br><br>前些阵子有位高手写了一个“执行动态生成的代码”,这是真正的高手,我没那种功力,我只会投机取巧。&nbsp;<br><br>这里提供三种方法,都是借助第三方的组件来实现的。&nbsp;<br><br>1、MicroSoft Windows Script Control(http://www.microsoft.com/downloads/details.aspx?FamilyID=d7e31492-2595-49e6-8c02-1426fec693ac&amp;DisplayLang=en)&nbsp;<br>&nbsp;&nbsp; 这是微软的东西,OCX的,我对OCX的东西一向没什么好感,:)但总算是解决问题的一个方法。&nbsp;<br>&nbsp;&nbsp; 到以上地址下载回来sct10en.exe,这是个安装程序,安装完成以后,在安装目录里有一个msscript.ocx,就是它了。&nbsp;<br>&nbsp;&nbsp; 在Delphi中Import OCX...导入安装,在窗体上添加一个TScriptControl类的实例。&nbsp;<br>&nbsp;&nbsp; 设置好它的Scriptanguage属性:VBScript,JScript...IE认识的它都认识,没有Object Pascal?不要急,好戏总是放在后头嘛...&nbsp;<br>&nbsp;&nbsp; 以VbScript为例:&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; 运行脚本:ScriptControl1.ExecuteStatement('msgbox("Runing....")');&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; 计算公式:ShowMessage(scriptcontrol1.Eval('1+1'));&nbsp;<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp; 优点:皇家的东西,相信它,没错的&nbsp;<br>&nbsp;&nbsp; 缺点:发布程序带个OCX,只能支持微软的Script&nbsp;<br><br>2、Dream Collection中的DCScripter(ftp://202.117.210.28/file/dream4.rar)&nbsp;<br>&nbsp;&nbsp; 安装好以后在控件面板DreamCompany里面有一个向右的黑色箭头,就是它了。&nbsp;<br>&nbsp;&nbsp; 以VbScript为例:&nbsp;<br>&nbsp;&nbsp; 运行脚本:DCScripter1.Script.Add('msgbox("Script Runing...")');&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DCScripter1.Run;&nbsp;<br>&nbsp;&nbsp; 计算公式:ShowMessage(DCScripter1.Evaluate('1+1'));&nbsp;<br><br>&nbsp;&nbsp; 优点:VCL的,除支持微软的脚本以外,还支持Perl,Python&nbsp;<br>&nbsp;&nbsp; 缺点:还是不支持Object Pascal...(别打,就来了...)&nbsp;<br><br>3、DelphiWebScriptII(http://prdownloads.sourceforge.net/dws/dws2src11.zip)&nbsp;<br>&nbsp;&nbsp; 这个东西好啊,功能超强,太强了,太强了,真强...&nbsp;<br>&nbsp;&nbsp; 安装完成以后,将TDelphiWebScriptII,Tdws2GUIFunctions加入窗体,引用dws2Exprs单元。&nbsp;<br>&nbsp;&nbsp; 运行脚本:&nbsp;<br>&nbsp;&nbsp; var&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; prg: TProgram;&nbsp;<br>&nbsp;&nbsp; begin&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; prg := DelphiWebScriptII1.Compile('ShowMessage(''hi'');');&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; prg.Execute;&nbsp;<br>&nbsp;&nbsp; end;&nbsp;<br>&nbsp;&nbsp; 这个东西是用稍微复杂一点,不过看看Demo吧,接下来的造化就看你自己的了。&nbsp;<br><br>&nbsp;&nbsp; 优点:VCL的,功能超强,支持Object Pascal...&nbsp;<br>&nbsp;&nbsp; 缺点:只支持Object Pascal...&nbsp;<br><br>以上三个各有忧缺点,大家可能比较欣赏DelphiWebScript的功能,但是我觉得如果是给用户使用的话,还是Dream Scripter比较好,毕竟VbScript等比较容易为用户所接受。其实现在很多网管等都很习惯于利用系统提供的COM对象,使用纯脚本进行编程。很方便的。&nbsp;</p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <div id="AllanboltSignature">   
      <div>作者:疯狂Delphi</div>
      <div>出处:https://www.cnblogs.com/FKdelphi/</div>
      <div>本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.</div>
</div>
<div class="div_masklayer" id="div_masklayer"></div>
<div class="div_popup" id="Div_popup">
<p class="mid">欢迎关注我,一起进步!扫描下方二维码即可加我</p>
<img class="img_zfb" id="img_zfb" width="150" src="https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_251208113944_QQ.png">
<img class="img_zfb" id="img_zfb" width="150" src="https://images.cnblogs.com/cnblogs_com/FKdelphi/1101510/o_251208115029_WX.png">
</div><br><br>
来源:https://www.cnblogs.com/FKdelphi/p/10937225.html
頁: [1]
查看完整版本: 教程-执行动态的delphi脚本