当前位置: 首页 > news >正文

VC执行VBS脚本

VBScript(JScript)是应用广泛,简单易学的脚本语言。使用VBScript(JScript)调用COM组件则更是容易。那么,如果在你的程序中也能够执行脚本,则在简化程序设计的基础上,还会极大地提升软件的功能。为了方便大家使用这个功能,我写了一个具有自动化(Automation/IDispatch)功能的EXE包装程序来代理调用脚本执行。这个包装程序接口只有2个函数,说明如下:

Void SetScriptLanguage(long nLanguage);

功能:设置使用脚本语言的类型

参数:0=使用VBScript 1=使用Jscript

说明:如果不调用这个函数,则默认使用VBScript

Void Run(LPCSTR lpszProgram);

功能:执行脚本

参数:脚本程序

使用方法与步骤:(以下的说明,是以VC6为蓝本,VC7的用户请参照进行操作变化)

复制文件到任意一个文件夹中,然后至少执行VBSENGIN.EXE 程序一次。完成组件的注册工作。 创建或打开一个MFC的程序工程。 添加代码,进行COM初始化。在App的InitInstance()函数中添加AfxOleInit()的调用。或者在使用COM功能之前调用函数CoInitialize(NULL),而COM功能结束后调用 CoUninitialize()。 添加VBSENGIN.TLB到工程中。打开ClassWizard对话窗,执行Add Class按钮的From a type library。然后选择VBSENGIN.TLB文件,加入IVBSEngin接口的包装类。 在你程序中的的适当地方(比如OnButton()函数),填写如下代码,执行脚本。
view source
 
print ?
01. #include "vbsengin.h"
02. OnButton()
03. {
04.     IVBSEngin vbsEngin;                         //声明一个脚本执行代理对象
05.     if(vbsEngin.CreateDispatch("VBSEngin.Api")) //启动脚本执行代理
06.     {
07.         vbsEngin.Run(sProgram);            //执行脚本,sProgram中存放的是脚本源程序
08.         vbsEngin.ReleaseDispatch();        //释放脚本执行代理
09.     }
10. }

应用举例

使用VBScript脚本,实现把一些文本传送到WORD中,并保存为DOC文件。(关于调用WORD功能的脚本,大家可以在WORD中录制宏程序,稍微修改就可以转换为VBScript脚本程序了)

view source
 
print ?
01. ''''启动WORD
02. Set word=CreateObject("Word.Application")
03.   
04. ''''显示WORD程序界面(不执行这行,那么你的WORD调用不会被用户看到)
05. word.Visible=True 
06.   
07.  ''''增加一个新文档
08. word.Documents.Add
09.   
10.  ''''输入文本
11. word.Selection.TypeText("Hello")
12.   
13. ''''输入回车
14. word.Selection.TypeParagraph 
15. word.Selection.TypeText("good morning")
16.   
17. ''''保存
18. word.ActiveDocument.SaveAs("c:\Hello.doc"
19.   
20.  ''''退出WORD程序
21. word.Quit(False)
22.   
23. ''''释放WORD接口
24. Set word=Nothing

 <linker : http://www.vckbase.com/index.php/wv/797>

转载于:https://www.cnblogs.com/MMLoveMeMM/articles/3131443.html

相关文章:

  • 70个非常酷和时尚的iOS应用程序图标
  • C# 3.0语言特性
  • xcode中c语言scanf的问题
  • taobao开源项目
  • Vim升华之树形目录插件NERDTree安装图解
  • Manifest文件的配置
  • 最新JAVA编程题全集(50题及答案)
  • 强大的命令行工具wmic
  • cookie工具类,解决servlet3.0以前不能添加httpOnly属性的问题
  • 语音频谱语音信号处理之(四)梅尔频率倒谱系数(MFCC)
  • apache+php+mysql的分布安装
  • Lvs+keepalived+nginx+php的session 保持的算法
  • [免費軟體] 用15個「免費正版軟體」取代盜版軟體! (狂省10萬元!)
  • 【算法】算法的艺术(二)
  • 泛型回顾
  • 分享的文章《人生如棋》
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 2017年终总结、随想
  • Angular6错误 Service: No provider for Renderer2
  • Babel配置的不完全指南
  • Bytom交易说明(账户管理模式)
  • eclipse的离线汉化
  • golang 发送GET和POST示例
  • iOS小技巧之UIImagePickerController实现头像选择
  • jquery ajax学习笔记
  • PHP那些事儿
  • python大佬养成计划----difflib模块
  • Solarized Scheme
  • storm drpc实例
  • Vim Clutch | 面向脚踏板编程……
  • 反思总结然后整装待发
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 模型微调
  • 使用agvtool更改app version/build
  • 微信小程序开发问题汇总
  • 我是如何设计 Upload 上传组件的
  • 用mpvue开发微信小程序
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 回归生活:清理微信公众号
  • 容器镜像
  • # 透过事物看本质的能力怎么培养?
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (1)STL算法之遍历容器
  • (JS基础)String 类型
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (编译到47%失败)to be deleted
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)iOS字体