- 浏览: 256630 次
文章分类
- 全部博客 (395)
- Tech (0)
- [随笔分类]心情 (95)
- [随笔分类]技术 (112)
- [随笔分类]管理心得 (13)
- [随笔分类]Code SOP (5)
- [随笔分类]望图知意 (11)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (8)
- [随笔分类]重构代码 (1)
- [随笔分类]童童 (2)
- Program (1)
- [随笔分类]看你知道不知道 (1)
- [网站分类]4.其他技术区 (31)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (21)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [随笔分类]昨日关注 (15)
- [网站分类]6.读书区(技术书籍阅读心得、书籍推荐) (3)
- [随笔分类]一步一个脚印 (2)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (1)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (3)
最新评论
今天主要是看了这篇文章VB-Helper:坚守脚本,之所以看这篇文章,主要是在维护以前开发的系统中,我被各种原先丑陋的设计搞得心烦,但是在下一个版本Release之前,这个产品还要维护下去,而且如果我们从头来重做一个,短期内也是不现实的。
Microsoft Script 控件允许用户为任意 Script 引擎编写和运行 Script。Script 控件提供 VBScript 和 Jscript(TM) 两种 Script 引擎。此外,您可向 Script 控件添加任何 Automation 对象的对象模型。添加后,Script 引擎可使用 Automation 对象的公用方法和属性。把应用程序的对象模型与 Script 引擎相结合,可以创建 Script 应用程序,运行宏来控制该应用程序。
创建 Script 控件实例
Microsoft Script 控件可作为控件或独立的 Automation 对象创建。此特性允许任何宿主应用程序以任意 Script 语言使用 Script 控件。
以下示例可放置于任意窗体中。注意,没有声明变量 sc 为 ScriptControl 类型,因为没有也不必在工程中引用控件。只要 Script 控件存在并已注册,以下代码就能正常运行:
2 Dim sc
3 Dim strProgram As String
4 strProgram = "Sub Main" & vbCrLf & _
5 "MsgBox ""嗨,你好!""" & vbCrLf & _
6 "End Sub"
7 Set sc = CreateObject("ScriptControl")
8 sc.language = "VBScript"
9 sc.addcode strProgram
10 sc.run "Main"
11End Sub
如果您在工程引用中对 Script 控件进行了显式的引用。就可以使用下列的代码创建该 Script 控件的实例:
Dim sc As ScriptControl
显示用户界面元素
AllowUI 属性决定是否允许 Script 引擎显示用户界面元素。可应用于 Script 控件自身,如控制超时信息的显示,也可应用于使用 ActiveX(TM) 编写界面的 Script 引擎。例如,在试图显示“Hello World”消息框时,以下代码将产生错误:
2Dim strX As String
3strX = "Sub Hello" & vbCrLf & _
4"MsgBox ""Hello World""" & vbCrLf & _
5"End Sub"
6ScriptControl1.AddCode strX
7ScriptControl1.Run "Hello" ' 不允许使用 UI !
创建 Script 代码
Microsoft Script 控件允许您创建运行 Script 语言(如 VBScript 或 Jscript 语言)的应用程序。假设,例如在窗体中有一个按钮,并且当您按下该按钮时希望执行某段 VBScript 代码。该按钮的名称为 Run NameMe,并且您希望脚本代码执行一个名为 NameMe 的过程。方法是当用户单击“运行 NameMe”按钮时,VBScript Script 引擎执行NameMe 过程。
运行 NameMe”按钮用 Script 控件的 Run 方法运行 Script。下面的代码应该出现在 Run NameMe 按钮的 Click 事件中:
'该 Script 控件的名称是 ScriptControl1。
2 ScriptControl1.Run "NameMe"
3End Sub
要创建此 Script 所需的其余代码,请选择一种 Script 语言,添加代码,然后运行该过程。
1 选择 Script 语言
第一步是为 Script 控件设置正确的 Script 语言。Script 控件被创建为一个页面上的控件时,Language 属性自动地被初始化为"VBScript"。当 Script 控件被创建为一个 Automation 对象时, Language 属性则没有被初始化,并且必需有代码编写者来设定。要设置 Language 属性为 Jscript,请使用“Properties”窗口。也可在代码中使用 Language 属性,如下所示:
ScriptControl1.Language = "JScript"
Script 控件也可使用其他 Script 语言。
2 向过程添加代码
请先使用 AddCode 方法向 Script 控件添加完整的过程,然后运行 NameMe 过程。如您添加的过程不完全(没有 End Sub 或 End Function),将发生错误。以下是向 Script 控件添加过程代码示例:
2' 添加 NameMe 过程。
3Private Sub Form_Load()Sub Form_Load()
4 Dim strCode As String
5 strCode = _
6 "Sub NameMe()" & vbCrLf & _
7 " Dim strName " & vbCrLf & _
8 " strName = InputBox(""姓名?"")" & vbCrLf & _
9 " MsgBox ""您的姓名是:"" & strName" & vbcrLf & _
10 "End Sub"
11 ScriptControl1.AddCode strCode
12End Sub
另外,您可从 TextBox 控件添加过程代码:
2 ' 此代码包含在 frmScript 窗体里名为 txtScript 的文本框中。
3 ScriptControl1.AddCode frmScript.txtScript.Text
4End Sub
您可向过程或函数添加参数。
2 ' 创建函数。
3 Dim strFunction As String
4 strFunction = _
5 "Function ReturnThis(x, y)" & vbCrLf & _
6 " ReturnThis = x * y" & vbCrLf & _
7 "End Function"
8 ' 添加代码,然后运行此函数。
9 ScriptControl1.AddCode strFunction
10 MsgBox ScriptControl1.Run("ReturnThis", 3, 25)
11End Sub
3 运行过程
Run 方法运行已添加到 Script 控件的任何完整过程。以下代码运行三个已定义的过程:
2ScriptControl1.Run "AddName"
3ScriptControl1.Run "Quit"
执行 Script 语句和计算结果
可以使用 ExecuteStatement 方法执行一个脚本语句。您可使用 Eval 方法计算 Script 代码行。
在下列代码中,ExecuteStatement 方法用于把 100 赋给变量 x。后面的两行代码使用 Eval 方法测试 x = 100 和 x = 100/2。第二行代码返回 True;第三行代码返回 False。
2 ScriptControl1.ExecuteStatement "x = 100"
3 MsgBox ScriptControl1.Eval("x = 100") ' 结果为 True
4 MsgBox ScriptControl1.Eval("x = 100/2") ' 结果为 False
5End Sub
使用 Error 属性
Script 控件错误有两个来源:Script 控件自身或 Control 正要运行的 Script。要调试 Script 代码,请使用 Error 属性,它返回 Error 对象的引用。Script 控件可用 Error 对象返回错误编号和描述信息,以及 Script 中出现错误的行号。
请运行以下代码显示一个示例。此示例中,Script 控件使用 Error 属性显示错误信息:
2 ' 以下 Script 代码产生被零除的错误。
3 Dim strCode As String
4 strCode = _
5 "Sub DivideByZero()" & vbCrLf & _
6 "Dim prime" & vbCrLf & _
7 "prime = 3" & vbCrLf & _
8 "MsgBox prime/0" & vbCrLf & _
9 "End Sub"
10 On Error GoTo scError
11 With ScriptControl1
12 .AddCode strCode
13 .Run "DivideByZero"
14 End With
15 Exit Sub
16scError:
17 ' 用 Error 对象通知用户所出现的错误以及该错误所在的行。
18 Debug.Print ScriptControl1.Error.Number & _
19
20":" & ScriptControl1.Error.Description & _
21 "行号:" & ScriptControl1.Error.Line
22 Exit Sub
23End Sub
ScriptControl的确是一个简单的解决办法,这种方式给程序提供了简单的脚本定制功能,因此可以将一些业务规则封装到单个模块中,通过动态加载的方式,轻松实现了业务逻辑的变化,因此我觉得还是不错,只是以前把这块给忽略了。
其实VB6的确已经被淘汰了,但是有些时候它偏偏就留下很多好的东西,而这些恰恰是我不知道的。
发表评论
-
启动NDuiker项目
2005-01-20 17:05 460今天是进驻博客园的第一天,在这里安家真的很不错,十分感谢DuD ... -
NDuiker项目第2天总结
2005-01-21 08:53 654昨天晚上基本上实现了 ... -
NDuiker项目第3天
2005-01-22 22:50 587今天是周六了,原本以为是很轻松的一天,结果只有到了这个时 ... -
NDuiker项目第6天
2005-01-25 16:50 582这几天好忙,也好累呀,这几天是公司项目收尾的阶段,忙的都透不过 ... -
对.Net 类库的一点思索
2005-02-02 09:29 614这些天主要在测试GDI+的 ... -
测试一个网站的想法
2005-02-05 17:07 544由于项目的需要,测试了一下“上海研发公共服务平台” 登录:ht ... -
项目建议书编写总结
2005-02-25 15:46 775昨天完成了项目建议书的编写工作,整个春节期间的工作到今天全部完 ... -
MyIE 增加了RSS功能
2005-02-28 09:54 574今天更新了MyIE,发现MyIE增加了RSS功能,试用了一下, ... -
www.beihua.edu.cn计划摘录
2005-02-28 14:11 783www.beihua.edu.cn工作计划 1:网站后期制作计 ... -
网站调研资料记录
2005-03-01 15:56 631资料整理备忘 1:内外网IP确认 ... -
静静的看书
2005-03-08 17:18 583这几天还是很忙,但是似乎好了很多,因为目前主要是写一个基于Sm ... -
我的Smart Client 的学习笔记
2005-03-09 15:35 1696User Interface Process (UIP) Ap ... -
研发、开发、运营
2005-03-25 12:15 636这些天很忙,网络也不争气,才刚刚好一点。 ... -
当需求变更来临
2005-04-30 14:26 543昨晚已经和老婆安排好5 ... -
重新登录Window2003的域
2005-05-12 09:58 688今天公司要求重新登录Windows2003的域,记录一下,以后 ... -
当不愿意写字得时候
2005-05-16 15:36 711做项目得前期分析得时候,我还是比较喜欢在本子上写写、画画得,通 ... -
远离技术的时候
2005-06-20 11:05 434这一个月一直在忙一个项目,现在项目的可研报告也 ... -
Asp.Net 中使用客户端Activex控件需要注意的事情
2005-08-13 12:57 954案例:Asp.Net +VB制作的Activex控件 操作系统 ... -
Office开发中的测试的与众不同之处
2005-08-22 14:29 728今天修改了一下自己以 ... -
大家确实都很忙
2005-08-27 08:20 738先谈几个技术问题: 1 ...
相关推荐
【标题】"魔力宝贝VB登陆器工程源码"揭示了这是一个使用Visual Basic(VB)编程语言开发的游戏登录器项目,特别针对“魔力宝贝”这款游戏。VB是Microsoft开发的一种面向对象的编程语言,常用于创建图形用户界面(GUI...
6. **多线程**:如果登录器需要同时处理多个并发连接,可能需要用到VB的多线程技术,如Thread类,以确保程序的高效性和稳定性。 总的来说,这个"仿VB登录器源码"是一个很好的学习和实践VB网络编程以及游戏客户端...
《魔力看血小工具VB源代码》是一个专为游戏《魔力宝贝》设计的辅助程序,主要用于查看游戏中怪物的血量。这个程序的核心亮点在于它提供了VB(Visual Basic)的源代码,使得用户不仅可以利用这个工具进行实际的游戏...
窗体与控件" />这些是调用内置的功能,大家要记得是用idMso,如果是自定义的就用id,还要注意区分大 小写,可能有的会员会问,我们怎样知道这些内置控件和功能的名称呢,我这里有一个工作薄,控件列表,也是微软网站...
高达600余例的VB程序代码库,备有详细的说明和实例,其中大部分可以变通用于ACCESS <P><P>非常非常感谢楚狐兄找到这个宝贝并贡献出来,这种无私的精神值得敬佩。我加了一个查询的功能,支持模糊查询,只需按F2就可以...
下面是基于VB6的示例代码,展示如何使用API实现串口通讯: - **打开串口**:通过`CreateFile`函数指定串口号(本例中为“COM4”),并设置访问模式为读写。 - **获取和设置串口状态**:使用`GetCommState`获取...
不可多得的桌面源码,主要具有以下功能: 1.数字时钟,2.天气桌面,3.蜂巢等元素桌面。4.科幻桌面 ...压缩包文件5M,源码里包括n个非常好的类及模块,非常值得学习,记得打好评哦,这可是压仓底的宝贝源码。
在VB.NET编程环境中,开发日语应用程序涉及到一系列特定的技术和概念。VB.NET是Microsoft .NET框架的一部分,它提供了一个强大的编程环境,支持多种语言,包括日语。本篇文章将深入探讨如何在VB.NET中处理日语字符和...
生成的代码是JS和VB的。涉及图形处理开发的小伙伴,PS有多强大,你们懂的;但是关于文档却一直没有详细的注解。PS的内置命令更是看不懂;有了这个...看要学什么命令;直接操作一遍,代码全部生成。然后...嘿嘿嘿。宝贝...
【爱上魔力登陆器vb源代码】是一款专为游戏《魔力宝贝》设计的登录器,采用Visual Basic(VB)编程语言开发。VB是微软公司推出的一种面向对象的、事件驱动的编程工具,适合快速构建用户界面友好、功能丰富的应用程序...
《唯有魔力看血工具及其源码》是一个针对经典网络游戏《魔力宝贝》设计的辅助工具,由C++编程语言在Visual Studio 2005环境下开发,并在Windows XP操作系统下运行良好。此工具的核心功能是查看游戏内角色的生命值...
6. **异步处理**:尝试将长时间运行的操作或大体积数据的加载异步化,以避免阻塞UI线程,造成界面无响应。 7. **使用代理服务**:如果问题源于淘宝网站本身,可以考虑通过API接口而不是直接浏览网页来获取宝贝信息...
6. **数据结构与算法**:在处理日志图片的生成过程中,可能需要使用到各种数据结构(如列表、字典)来存储信息,以及算法(如排序、搜索)来优化处理过程。 7. **文件操作**:源代码需要能够读取和保存用户的数据,...
6. **安全性**:使用第三方软件可能带来的安全风险,包括病毒感染、个人信息泄露等,因此开发者需要确保工具的安全性,同时用户也应注意安装来源的可信度。 7. **反作弊机制**:游戏开发商可能会设置反作弊系统来...
本软件采用VB制作,操作简易,是大家购物的好帮手,请大家分享,谢谢使用!
易淘-桌面淘宝软件特色 一键预览 创新的商品预览模式,宝贝浏览更轻松 搜索更智能 ...快车下载:flashget://W0ZMQVNIR0VUXWh0dHA6Ly91bmlvbi44NjBrLmNvbS9kb3dubG9hZC5hc3A/aWQ9MDExMzMwW0ZMQVNIR0VUXQ==
6. **战斗系统**: 神奇宝贝的核心在于其独特的战斗机制。引擎需要实现回合制战斗逻辑,包括选择技能、计算伤害、触发特殊效果等。此外,战斗动画和视觉反馈也是提升用户体验的关键。 7. **资源管理**: 游戏中的图像...