搭建论坛交流论坛烧友之家 → [原创]让搭建之星执行脚本(可调用ActiveX控件)


  共有5346人关注过本帖树形打印

主题:[原创]让搭建之星执行脚本(可调用ActiveX控件)

帅哥哟,离线,有人找我吗?
xilee
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新人 帖子:1 积分:23 威望:0 精华:0 注册:2006-7-26 8:06:59
[原创]让搭建之星执行脚本(可调用ActiveX控件)  发帖心情 Post By:2010-7-25 12:41:20

附件下载地址(需要回复后才可见)
 
以下内容只有回复后才可以浏览


执行脚本的是 RunScript.IPD
RunScript.IPD这个模块的密码是:FuanCM.com,如果你有兴趣了解内部实现,也可以打开看
也没什么密码。

传递的参数格式如下
第一行必须是要调用的脚本中的函数的名称
第二行必须是要传递给调用函数的参数,如果传递的参数为空,可以传一个空格

后面的就是脚本的具体内容
被调用的函数必须是Function,不能是Sub
这个被调用的函数必须能接受且只能接受一个参数。不管这个参数对函数是否有用
函数必须有返回值,返回值可以是任意值,但不能是wxScript,不然RunScript.IPD将不能返回

在示范.ipd里面提供了3个示范

第一个是 让脚本调用 msgbox函数来弹出对话框
第二个是 利用脚本实现下载,这个函数有两个参数,但是接口只能传递1个参数
所以将两个参数放在一起,中间用$#$做分割标记,在函数内部再分开为2个函数
如果你自己设计的函数需要多个参数,也只能这么做,将参数链接再一起,做好
分割标记,然后再脚本函数内部分割为多个参数

第三个是一个求 不大于某个整数的最大质数,比如不大于30的最大质数是:29
这个脚本里面脚本调用了脚本。


如果您要使用RunScript.IPD执行您提供的脚本,请最好先测试您的脚本没问题。
测试的方法同 maxZHU.vbs
没问题了就可以来调用,没经过测试的脚本,执行遇到各种错误你也不知道哪里有问题


----------------------------------特别说明----------------------------------------
本程序使用的版本: 搭建之星 免费版
内部调用了VB设计的程序来实现
允许调用的脚本为VBScript,其他类型的脚本不支持,抱歉。

大家可以利用脚本来调用各种ActiveX控件了

----------------------------------------------------------------------------------

富安传媒:http://www.fuancm.com


支持(1中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
xilee
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新人 帖子:1 积分:23 威望:0 精华:0 注册:2006-7-26 8:06:59
  发帖心情 Post By:2010-7-25 13:01:23

 考虑到大家对可执行程序的担心,这里贴出VB全部代码
大家如果有VB的基础,可以自行编译

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

Private Sub Form_Load()
    Dim Pos, hFmWnd As Long, sScript As String, sFunName As String, sVar As String, sRet As String
    Dim FScript As MSScriptControl.ScriptControl
    If Len(Command) < 5 Then End
    '第一行为函数名称,第二行为函数参数,其余为内容
    sScript = Command
    Pos = InStr(1, sScript, "{", vbTextCompare)
    If Pos Then
        sScript = Mid$(sScript, Pos + 1, Len(sScript))
    End If
   
    Pos = InStr(1, sScript, "}", vbTextCompare)
    If Pos Then
        sScript = Mid$(sScript, 1, Pos - 1)
    End If
   
    sScript = Replace(sScript, Chr(1), vbCrLf)
    Pos = InStr(1, sScript, vbCrLf)
    sFunName = Mid$(sScript, 1, Pos - 1)
    sScript = Mid$(sScript, Pos + 1, Len(sScript))
    Pos = InStr(1, sScript, vbCrLf)
    sVar = Mid$(sScript, 1, Pos - 1)
    sScript = Mid$(sScript, Pos + 1, Len(sScript))
    If InStr(1, sVar, "Debug", vbTextCompare) Then
        MsgBox "执行函数名称:" & sFunName
        MsgBox "参数:" & sVar
        MsgBox "脚本内容:" & sScript
    End If
    Set FScript = New MSScriptControl.ScriptControl
    FScript.Language = "VBScript"
    FScript.AddCode sScript
    FScript.Timeout = -1
    sRet = FScript.Run(sFunName, sVar)
   
     If InStr(1, sVar, "Debug", vbTextCompare) Then
        MsgBox "返回值" & sRet
    End If
   
    hFmWnd = FindWindow("TMRunForm", "wxScript")

    Call SetWindowText(hFmWnd, sRet)
    End
End Sub




支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
ems158
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:爱好者 帖子:30 积分:265 威望:0 精华:0 注册:2009-12-8 9:16:56
  发帖心情 Post By:2010-7-25 13:17:34

很好,有懂 VB的研究一下 。


支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
引力波
  4楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:首席分析师 帖子:1554 积分:4008 威望:5 精华:10 注册:2002-12-5 10:22:01
  发帖心情 Post By:2010-7-25 15:20:49

这个VB实例非常值得学习,谢谢楼主!


支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
pc_doctor
  5楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 卧龙樵夫
等级:首席分析师 帖子:1270 积分:7005 威望:0 精华:3 注册:2003-3-23 14:15:25
  发帖心情 Post By:2010-7-26 10:13:09

太有才了!

谢谢分享,学习之。


支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
xilee
  6楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新人 帖子:1 积分:23 威望:0 精华:0 注册:2006-7-26 8:06:59
  发帖心情 Post By:2010-7-26 11:55:11

 回复引力波,可以调用JavaScript
在VB的代码中,修改者一行
 FScript.Language = "VBScript"
改为
FScript.Language = "JavaScript"
就可以支持了,如果要同时支持两种脚本
就需要传递参数进来,决定具体用那种脚本

支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
roy78
  7楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 没事找事
等级:设计员 帖子:442 积分:2499 威望:0 精华:0 注册:2005-9-12 3:09:56
  发帖心情 Post By:2010-8-29 21:38:15

了解下

支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
ahtclhl
  8楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:爱好者 帖子:79 积分:540 威望:0 精华:0 注册:2008-5-12 10:46:19
  发帖心情 Post By:2010-10-11 16:57:26

tttttttttttttttttttttttttttttttt

支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
ygd888
  9楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:技师 帖子:150 积分:992 威望:0 精华:0 注册:2009-10-24 17:23:42
  发帖心情 Post By:2010-10-12 19:15:35


支持(0中立(0反对(0回到顶部
帅哥哟,离线,有人找我吗?
wbl051
  10楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:设计师 帖子:500 积分:3508 威望:0 精华:0 注册:2008-3-8 10:23:03
  发帖心情 Post By:2012-10-11 21:07:44

看一下


支持(0中立(0反对(0回到顶部
总数 23 1 2 3 下一页