让你的程序也能执行脚本

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()函数),填写如下代码,执行脚本。

#include "vbsengin.h"
OnButton()
{
  IVBSEngin vbsEngin;  //声明一个脚本执行代理对象
  if(vbsEngin.CreateDispatch("VBSEngin.Api")) //启动脚本执行代理
  {
    vbsEngin.Run(sProgram);  //执行脚本,sProgram中存放的是脚本源程序
    vbsEngin.ReleaseDispatch(); //释放脚本执行代理
  }
}

时间: 2024-11-02 14:02:13

让你的程序也能执行脚本的相关文章

用php程序作为linux自动执行脚本

用PHP作一社区, 在写到计算最高上线人数时, 成功调试出把PHP作为 shell script直接在服务器上运行. 在作社区时, 时常需要统计上线人数等数据. 一般做法是, 把这段代码放在用户login或者某一个页面中, 以便在用户登录或访问到该时,触发运行该代码. 这样一来, 会造成一个问题, 如果该代码教复杂, 明显减慢该页的正常调用速度.利用PHP 的这种特性,加上Linux的crontab指令,即可自动定时执行某一个php文件(统计在线人数等). 具体方法: 在安装PHP的时候,会产生

Automake系列( 四)安装可执行脚本

有些程序在发布的时候,除了编译的二进制可执行程序以外,还需要安装一些可执行的脚本.安装这些可执行脚本,有两种方式: 1.安装可执行脚本到bin目录或者是sbin目录 比如我这里有个脚本在源代码目录的./tools/cm.pl.那么在Makefile.am中增加如下语句: dist_bin_SCRIPTS=./tools/cm.pl 将会把cm.pl脚本安装到目标安装目录的bin子目录下.如果你想安装到sbin目录下,请使用 dist_sbin_SCRIPTS=./tools/cm.pl 2.安装

ssh连接远程主机执行脚本的环境变量问题

近日在使用ssh命令ssh user@remote ~/myscript.sh登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题: ~/myscript.sh: line n: app: command not found app是一个新安装的程序,安装路径明明已通过/etc/profile配置文件加到环境变量中,但这里为何会找不到?如果直接登陆机器remote并执行~/myscript.sh时,app程序可以找到并顺利执行.但为什么使用了ssh远程执行同样的脚本就出错了呢?两种方式执行

linux c程序中获取shell脚本输出的实现方法_C 语言

1. 前言Unix界有一句名言:"一行shell脚本胜过万行C程序",虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部命令ping后,如果执行失败,我们希望得到p

请教如何用批处理修改IE的受信任站点安全选项:对未标记为可安全执行脚本的activex控件初始化并执行请大虾们帮忙并贴出代码

问题描述 请教如何用批处理修改IE的受信任站点安全选项:对未标记为可安全执行脚本的activex控件初始化并执行?请大虾们帮忙并贴出代码... 解决方案 解决方案二:有点hack了如果是web程序,你在客户端没什么权限

PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)

源码地址:https://github.com/Tinywan/PHP_Experience 测试环境配置: 环境:Windows 7系统 .PHP7.0.Apache服务器 PHP框架:ThinkPHP框架(3.2) Redis数据库:测试数据回调函数:通过一个Redis的自增incr来测试异步脚本执行的次数和访问的时间(平时都是用Redis测试写日志的) 编辑器:Visual Studio Code (CLI运行环境好看点) PHP 的命令行模式       从版本 4.3.0 开始,PHP

java-Java 小程序不可以执行

问题描述 Java 小程序不可以执行 F:江苏海院专业文件Javajava项目新建文件夹>javac YuFa.javaF:江苏海院专业文件Javajava项目新建文件夹>java YuFa Exception in thread ""main"" java.lang.NoClassDefFoundError: YuFaCaused by: java.lang.ClassNotFoundException: YuFa at java.net.URLCla

在linux中执行脚本

Linux执行脚本号令时前面加[点][空格[点][斜杠](. ./) 进入/root/CiscoIOU目录下,然后执行 . ./start.sh 备注: 第一个[点][空格](. )默示把后面的执行结果(如景象变量设置)导入到当前文件. 第二个[点][斜杠](./),就是执行当前目录(在当前文件所设置的PWD中)里的文件. 一般执行均为./ 的形式

Linux下设置定期执行脚本

  在Linux下,经常需要定期的执行一些脚本从而来实现一些功能. 在Linux下我们用crontab来实现定期的执行脚本这个功能,下面就介绍一下crontab的使用.以及我遇到的一些问题 一. crontab的使用说明 1. crond 是linux用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作.而linux任务调度的工作主要分为以下两类 a. 系统执行的工作,比如垃圾清理,备份