VBS 运行外部程序

部署运行你感兴趣的模型镜像

VBS 运行外部程序


Vbs只提供了编程的一个基本框架,用户可以使用Vbs来定义变量、过程和函数,vbs也提供了一些内部函数和对象,但是Vbs没有提供任何命令来访问Windows系统内部的部件,但是值得庆幸的是,Vbs虽然不能自己完成这些任务,但是它提供了一条极为方便、功能也相当强的命令——CreateObject,这条命令可以访问windows系统内安装的所有com对象,并且可以调用这些部件中存放的命令。


于是问题解决了,比如说,[作者:临汾市外事旅游局薛靖澜,转载请注明出处]我手头有1000个小文本,我首先要对每一个文本的语法进行查错和修改,然后按照预先定义好的规则对这些文本进行排序,最后将这些文本合并成为一个文件。正常情况下,我们需要把打开第一个小文本,然后把它复制到WORD中,然后利用里面的除错功能进行除错和修改,然后再导入到EXCEL中进行排序,将这个过程重复1000遍,然后再将所有得到的文本复制到一个大文本中。实在是太枯燥、工作量太大了。有了Vbs和CreateObject,问题得到解决,我只需要找到相应的模块,调用相应的功能就可以了,作为脚本,把一个枯燥的过程重复1000次,本就是它的拿手好戏。

好了,我们走入正题,从最简单的——只启动一个程序开始。

WSH也就是用来解析Vbs的宿主,本身包含了几个个常用对象:

1、Scripting.FileSystemObject  —>  提供一整套文件系统操作函数

2、Scripting.Dictionary  —>  用来返回存放键值对的字典对象

3、Wscript.Shell  —>  提供一套读取系统信息的函数,如读写注册表、查找指定文件的路径、读取DOS环境变量,读取链接中的设置

4、Wscript.NetWork  —>  提供网络连接和远程打印机管理的函数。(其中,所有Scripting对象都存放在SCRRUN.DLL文件中,所有的Wscript对象都存放在WSHOM.ocx文件中。)

现在我们需要的是第三个对象,好了,让我们先连接一下对象看看,在记事本的编辑窗口中输入:

Set objShell = CreateObject(“Wscript.Shell”)

objShell.Run “notepad”

同样,保存执行。那么看到了一个什么样的结果呢?在桌面上又打开了一个记事本。

说明之一:Set是Vbs指令,凡是将一对象引用赋给变量,就需要使用set关键字。那么什么是对象引用呢?凡是字符串、数值、布尔值之外的变量都是对象引用。Objshell是变量名,可以随意修改。

说明之二:反是正确引用的对象,其本身内置有函数和变量,其引用方法为在变量后加“. ”,后紧跟其实现功能的函数就可以了。Objshell.run 的意思就是调用Wscript.shell中的运行外部程序的函数——run,notepad是记事本程序的文件名。当然你也可以改成“calc”,这是计算器的文件名,winword是word的文件名,等等吧,所有可执行文件的文件名都可以。但是需要注意的是,如果你要执行的可执行文件存放的地方不是程序安装的常用路径,一般情况下,需要提供合法的路径名,但是run在运行解析时,遇到空格会停止,解决的方法是使用双引号,[作者:临汾市外事旅游局薛靖澜,转载请注明出处]例如:在我的机器上运行qq,代码为:

objshell.run """C:\Program Files\QQ2006\QQ.exe"""  ‘注:三个引号


好, 我们再进一步,启动两个程序会如何呢?

输入如下代码:

Set objShell = CreateObject(“Wscript.Shell”)

objShell.Run “notepad”

objShell.Run “calc”

执行会如何呢?两个程序基本上同时启动了。如果我们需要先启动notepad再启动calc将如何呢?很简单在需要顺序执行的代码后加 , , True参数就可以了。

好了输入代码:

Set objShell = CreateObject(“Wscript.Shell”)

objShell.Run “notepad” ,,true

objShell.Run “calc”

看看执行的结果怎么样吧!

总结:run函数有三个参数,第一个参数是你要执行的程序的路径,第二个程序是窗口的形式,0是在后台运行;1表示正常运行;2表示激活程序并且显示为最小化;3表示激活程序并且显示为最大化;一共有10个这样的参数我只列出了4个最常用的。 第三个参数是表示这个脚本是等待还是继续执行,如果设为了true,脚本就会等待调用的程序退出后再向后执行。
其实,run做为函数,前面还有一个接受返回值的变量,一般来说如果返回为0,表示成功执行,如果不为0,则这个返回值就是错误代码,可以通过这个代码找出相应的错误。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在使用 CATIA 的 VBS 编辑器时,出现 **“外部程序无效”** 的错误提示通常与脚本执行环境、CATIA 版本兼容性或系统权限设置有关。以下是可能导致此问题的原因及相应的解决方案。 ### 常见原因分析 - **脚本调用的 COM 对象未正确注册或不被支持**:当 VBS 脚本尝试调用未注册的 COM 组件或接口时,会导致此类错误。 - **CATIA 版本与脚本不兼容**:不同版本的 CATIA 对 VBS 编辑器的支持存在差异,尤其在接口名称或方法签名变更时[^1]。 - **安全策略限制**:Windows 系统或防病毒软件可能阻止了脚本对外部程序的访问。 - **CATIA 未以管理员权限运行**:某些操作需要更高权限才能执行外部调用。 ### 解决方案 1. 检查脚本中调用的 COM 接口是否适用于当前使用的 CATIA 版本。例如,确保以下代码中的对象声明正确无误: ```vbs Set catia = GetObject(, "CATIA.Application") ``` 2. 如果使用了自定义 DLL 或第三方插件,确保它们已正确注册(使用 `regsvr32`)并兼容当前操作系统和 CATIA 架构(32/64 位)[^1]。 3. 尝试以管理员身份运行 CATIA,以避免因权限不足而导致的访问限制。 4. 在 Windows 安全中心或第三方杀毒软件中临时禁用脚本拦截功能,测试是否仍报错。 5. 使用兼容模式运行 CATIA,右键点击 CATIA 快捷方式,选择“属性”,在“兼容性”选项卡中勾选“以管理员身份运行”。 6. 更新 CATIA 至最新补丁版本,确保所有接口和组件处于稳定状态。 7. 若脚本涉及对其他应用程序(如 Excel、Access 等)的自动化控制,确认目标程序已安装且其 COM 库已注册。 ### 示例代码:验证 CATIA 是否正常响应 VBS 调用 ```vbs Dim catia On Error Resume Next Set catia = GetObject(, "CATIA.Application") If Err.Number <> 0 Then MsgBox "无法连接到 CATIA,错误:" & Err.Description Else MsgBox "成功连接到 CATIA!" End If ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值