如何在VB6中执行VBS文件并调用项目内的form3窗体显示
VB6执行VBS并调用内部窗体实现方案
现有基础代码
你已经使用Microsoft Common Dialog Control 6.0实现了VBS文件选择功能,代码如下:
CommonDialog1.Filter = "VBS脚本文件 (*.vbs)|*.vbs|所有文件 (*.*)|*.*" CommonDialog1.DefaultExt = "vbs" CommonDialog1.DialogTitle = "选择VBS文件" CommonDialog1.ShowOpen
选择完成后通过FileName属性即可获取选中的VBS文件路径。
核心功能实现
要实现「VB6中执行VBS,且VBS可调用项目内Form3窗体显示」,可以通过进程内脚本宿主的方式实现,不要调用系统外置的wscript/cscript进程,跨进程无法直接访问VB6的窗体对象,具体步骤如下:
- 首先在VB6工程引用中添加「Microsoft Script Control 1.0」组件
- 读取选中的VBS脚本内容到内存
- 初始化脚本控制对象,将Form3窗体实例暴露到脚本上下文
- 执行VBS脚本,脚本内即可直接调用Form3的Show方法
参考实现代码:
' 声明脚本控制对象 Dim sc As New MSScriptControl.ScriptControl Dim vbsCode As String ' 读取选中的VBS文件内容 Open CommonDialog1.FileName For Input As #1 vbsCode = Input$(LOF(1), 1) Close #1 ' 配置脚本环境 sc.Language = "VBScript" sc.AllowUI = True ' 将Form3暴露给VBS,第二个参数为True表示允许脚本访问对象的公开成员 sc.AddObject "VB6Form3", Form3, True ' 执行VBS脚本 sc.ExecuteStatement vbsCode
执行后,你在VBS脚本中写VB6Form3.Show即可直接显示VB6项目内的Form3窗体。
内容的提问来源于stack exchange,提问作者user15703696
相关产品推荐
相关产品推荐

