怎么向脚本中代码里的变量传值、

pengwu666 2013-02-23 10:08:37
我通过
ScriptControl
VBScript
执行txt脚本文件。
问题:
我在程序中获得
值45
我要把这个值赋值给脚本代码中的变量a
该怎么传递 这个值、
...全文
586 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengwu666 2013-02-23
  • 打赏
  • 举报
回复
与题目不符把
bcrun 2013-02-23
  • 打赏
  • 举报
回复
楼主应该要把那个"26.csq"文件的内容贴出来

楼主怎么不反馈啊,还好我的版主,不能接连回复3次,我还可以编辑帖子:

刚测试了一下,直接头痛医头的办法是这个(意思软件设计时这类需求,弄成基于对象的似乎更好)
如前,假设你用AddCode加进去的代码中有这么一行定义公共变量的
Dim s1
那个,在VB中的那些代码里,可以通过这样的方式读写这变量

script_control.ExecuteStatement ("s1=""cool""")
MsgBox script_control.Eval("s1")
bcrun 2013-02-23
  • 打赏
  • 举报
回复
我帖的代码是Vbs脚本,是供VB6程序调用的,用ScriptControl的Run方法
bcrun 2013-02-23
  • 打赏
  • 举报
回复
看到你的问题,我在没系统复习这个控件的全部用法前,第一个想到的是这个方案: 看你从哪个角度说,如果只需要处理眼前的问题,一般你在Vbs里专门定义个函数,把新值当参数赋给那变量也行 dim var1 sub SetVar1(newValue) var1=newValue end sub
pengwu666 2013-02-23
  • 打赏
  • 举报
回复



'Form1 Module
Option Explicit
Private mScript As New CScript
'---------------------------------------------------------------------------------------
' 过程名    : Command1_Click
' 时间      : 2013-1-28 18:07
' 作者      : 杨过.网狐.cn(csdn bcrun)
' 功能      :
' 说明      :
' 备注      : CSDN之VB一群:283362041
'---------------------------------------------------------------------------------------
'
Private Sub Command1_Click()
On Error GoTo Command1_Click_Error

    mScript.WAIT 200

    Dim script_control As Object
    Dim strLine As String
    Dim iLen As Long
    Open "26.csq" For Input As #1
        iLen = LOF(1)
        strLine = StrConv(InputB$(iLen, #1), vbUnicode)
        Text1.Text = strLine
    Close #1

    Set script_control = CreateObject("MSScriptControl.ScriptControl")
    script_control.Language = "VBScript"
    script_control.AddCode strLine
    script_control.AddObject "list", List1
    script_control.AddObject "Text", Text1
    script_control.AddObject "scrobj", mScript

    script_control.Run "main"

    On Error GoTo 0
    Exit Sub

Command1_Click_Error:

    MsgBox "错误 " & Err.Number & " (" & Err.Description & ") in procedure Command1_Click of Form Form1"
End Sub

'CScript ClassModule
Option Explicit

Private Declare Function GetTickCount Lib "kernel32" () As Long
Public Sub WAIT(ByVal msec As Long, Optional blnVar As Boolean = True)
    Dim iTick As Long
    iTick = GetTickCount
    While GetTickCount - iTick < msec And blnVar
        DoEvents
    Wend
End Sub



pengwu666 2013-02-23
  • 打赏
  • 举报
回复
'Form1 Module Option Explicit Private mScript As New CScript '--------------------------------------------------------------------------------------- ' 过程名    : Command1_Click ' 时间      : 2013-1-28 18:07 ' 作者      : 杨过.网狐.cn(csdn bcrun) ' 功能      : ' 说明      : ' 备注      : CSDN之VB一群:283362041 '--------------------------------------------------------------------------------------- ' Private Sub Command1_Click() On Error GoTo Command1_Click_Error       mScript.WAIT 200       Dim script_control As Object    Dim strLine As String    Dim iLen As Long    Open "26.csq" For Input As #1         iLen = LOF(1)         strLine = StrConv(InputB$(iLen, #1), vbUnicode)         Text1.Text = strLine     Close #1       Set script_control = CreateObject("MSScriptControl.ScriptControl")     script_control.Language = "VBScript"    script_control.AddCode strLine     script_control.AddObject "list", List1     script_control.AddObject "Text", Text1     script_control.AddObject "scrobj", mScript       script_control.Run "main"      On Error GoTo 0     Exit Sub  Command1_Click_Error:       MsgBox "错误 " & Err.Number & " (" & Err.Description & ") in procedure Command1_Click of Form Form1"End Sub  'CScript ClassModule Option Explicit   Private Declare Function GetTickCount Lib "kernel32" () As LongPublic Sub WAIT(ByVal msec As Long, Optional blnVar As Boolean = True)     Dim iTick As Long    iTick = GetTickCount     While GetTickCount - iTick < msec And blnVar         DoEvents     Wend End Sub
pengwu666 2013-02-23
  • 打赏
  • 举报
回复
没有人会吗,
chuifengde 2013-02-23
  • 打赏
  • 举报
回复
a=b用在if 中就是判断a等不等于b有什么可疑的。
pengwu666 2013-02-23
  • 打赏
  • 举报
回复
引用 8 楼 chuifengde 的回复:
贴出文件内容和你要的结果
版主都帮不到我,我放弃这个方法了。 也不要浪费这100分, 问个简单点的问题。 a="sef" b="sdfsf" 我想if a=b then 的 但是好像a=b这样是赋值了不是比对,怎么才可以比对a是否等于b
chuifengde 2013-02-23
  • 打赏
  • 举报
回复
贴出文件内容和你要的结果

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧