精易论坛

标题: 待我不公哇,这问题怎么会出现在我身上!谁来解答! [打印本页]

作者: ZealotMaster    时间: 2012-6-3 18:56
标题: 待我不公哇,这问题怎么会出现在我身上!谁来解答!
text="abc"
MsgBox(UCase(StrReverse(text)))
这段VBS脚本没问题吧,我自己在无线程的E脚本组件上试过了……能够运行……有线程的E脚本组件上也试过了,也能够运行。
测试能够运行的代码:
  1. .版本 2
  2. .支持库 EThread

  3. .程序集 窗口程序集2
  4. .程序集变量 类, 脚本

  5. .子程序 _按钮1_被单击

  6. 类.清除 ()
  7. .如果 (启动线程 (&子程序1, , ))
  8. 输出调试文本 (“执行成功”)
  9. .否则
  10. 输出调试文本 (“执行失败”)
  11. .如果结束


  12. .子程序 _按钮2_被单击

  13. 输出调试文本 (类.运行 (编辑框1.内容))

  14. .子程序 _按钮3_被单击

  15. 输出调试文本 (类.计算表达式 (编辑框1.内容))


  16. .子程序 子程序1

  17. .如果 (_执行 (编辑框1.内容))
  18. 输出调试文本 (“执行代码成功”)
  19. .否则
  20. 输出调试文本 (“执行代码失败”)
  21. .如果结束



  22. .子程序 _执行, 逻辑型
  23. .参数 代码, 文本型
  24. .局部变量 脚本, 脚本
  25. .局部变量 bool_是否为真, 逻辑型

  26. bool_是否为真 = 脚本.执行 (代码)
  27. 返回 (bool_是否为真)

复制代码
不能运行的代码:
  1. .版本 2

  2. .局部变量 对象, VBS脚本类
  3. .局部变量 i, 整数型
  4. .局部变量 sz_代码分页, 文本型, , "0"
  5. .局部变量 代码1, 整数型
  6. .局部变量 代码2, 整数型
  7. .局部变量 text_代码, 文本型
  8. .局部变量 tx_错误信息, 错误信息

  9. 对象.属性_语言 (1)
  10. ' tx_错误信息.初始化 (对象)
  11. .变量循环首 (1, 2, 1, i)
  12. 加入成员 (sz_代码分页, _知识库._ZSK_取出 (int_线程序号 × 10 + i))
  13. .变量循环尾 ()
  14. 对象.清除 ()
  15. .计次循环首 (2, 代码1)
  16. .计次循环首 (2, 代码2)
  17. text_代码 = sz_代码分页 [代码1] + #换行符 + sz_代码分页 [代码2]
  18. .判断开始 (对象.执行 (text_代码) = 真)
  19. _知识库._ZSK_加入日志 (_知识库._ZSK_加入日志项 (“运行代码成功:” + text_代码))
  20. 加入成员 (sz_代码, text_代码)
  21. 对象.清除 ()
  22. .默认
  23. tx_错误信息 = 对象.属性_错误信息 ()
  24. _知识库._ZSK_加入日志 (_知识库._ZSK_加入日志项 (“运行代码失败:” + text_代码 + “ 错误信息:” + tx_错误信息.错误描述 ())) ' + 错误信息到文本 (tx_错误信息)))
  25. 对象.清除 ()
  26. .判断结束

  27. .计次循环尾 ()
  28. .计次循环尾 ()
  29. 加入成员 (sz_是否执行完毕, 真)
  30. 输出调试文本 (“线程” + 到文本 (int_线程序号) + “完成”)
  31. 返回 ()
复制代码
为什么一个能运行一个不能运行?


作者: Cand    时间: 2012-6-3 19:10
没有支持库?

作者: ZealotMaster    时间: 2012-6-3 20:13
易团僧 发表于 2012-6-3 19:10
没有支持库?

没用支持库,用的是类
  1. .版本 2

  2. .程序集 VBS脚本类, , 公开
  3. .程序集变量 脚本对象, 对象
  4. .程序集变量 错误信息, 错误信息

  5. .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用

  6. CoInitialize (0)
  7. 脚本对象.创建 (“ScriptControl”, )
  8. 脚本对象.写属性 (“Language”, “vbs”)

  9. .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用

  10. CoUninitialize ()
  11. 错误信息.清除 ()
  12. 脚本对象.清除 ()

  13. .子程序 属性_语言, 整数型, 公开, 返回以下值:0.JScript;1.VBScript;-1.语言为空。当类的语言属性未指定时,默认为1,VBScript。
  14. .参数 新语言属性, 整数型, 可空, 可供选择的属性值:0. JScript   1. VBScript

  15. .如果真 (是否为空 (新语言属性) = 假)
  16.     .判断开始 (新语言属性 = 0)
  17.         脚本对象.写属性 (“Language”, “vbs”)
  18.     .默认
  19.         脚本对象.写属性 (“Language”, “JScript”)
  20.     .判断结束

  21. .如果真结束
  22. .判断开始 (脚本对象.读文本属性 (“Language”, ) = “vbs”)
  23.     返回 (1)
  24. .判断 (脚本对象.读文本属性 (“Language”, ) = “JScript”)
  25.     返回 (0)
  26. .默认
  27.     返回 (-1)
  28. .判断结束


  29. .子程序 属性_错误信息, 错误信息, 公开, 返回错误信息

  30. 错误信息.初始化 (脚本对象.读对象型属性 (“Error”, ))
  31. 返回 (错误信息)

  32. .子程序 属性_超时, 整数型, 公开, 设置或返回时间(毫秒),此时间后用户可选择中止脚本代码的执行或允许代码继续执行。
  33. .参数 新超时属性值, 整数型, 可空, 当为-1时,使脚本引擎的执行无超时

  34. .如果真 (是否为空 (新超时属性值) = 假)
  35.     脚本对象.写属性 (“Timeout”, 新超时属性值)
  36. .如果真结束
  37. 返回 (脚本对象.读数值属性 (“Timeout”, ))

  38. .子程序 属性_状态, 整数型, 公开
  39. .参数 新状态值, 整数型, 可空, 参数值为以下值之一: 0、Initialized; 1、Connected

  40. .如果真 (是否为空 (新状态值) = 假)
  41.     脚本对象.写属性 (“State”, 新状态值)
  42. .如果真结束
  43. 返回 (脚本对象.读数值属性 (“State”, ))

  44. .子程序 属性_是否使用图形界面, 逻辑型, 公开
  45. .参数 新是否使用图形界面属性, 逻辑型, 可空

  46. .如果真 (是否为空 (新是否使用图形界面属性) = 假)
  47.     脚本对象.写属性 (“AllowUI”, 新是否使用图形界面属性)
  48. .如果真结束
  49. 返回 (脚本对象.读逻辑属性 (“AllowUI”, ))

  50. .子程序 属性_图形界面父窗口句柄, 整数型, 公开
  51. .参数 新父窗口句柄, 整数型, 可空

  52. .如果真 (是否为空 (新父窗口句柄) = 假)
  53.     脚本对象.写属性 (“SitehWnd”, 新父窗口句柄)
  54. .如果真结束
  55. 返回 (脚本对象.读数值属性 (“SitehWnd”, ))

  56. .子程序 添加代码, , 公开
  57. .参数 代码文本, 文本型

  58. 脚本对象.数值方法 (“AddCode”, 代码文本)

  59. .子程序 运行, 文本型, 公开, 在添加的代码中运行指定的过程,如有返回值返回相应文本,否则返回空文本。
  60. .参数 过程或函数名, 文本型
  61. .参数 参数, 文本型, , 最多支持30个参数
  62. .局部变量 I, 整数型

  63. I = 取数组下标 (参数, )
  64. .判断开始 (I = 0)
  65.     返回 (脚本对象.文本方法 (“Run”, 过程或函数名))
  66. .默认

  67. .判断结束
  68. 返回 (“”)

  69. .子程序 执行, 逻辑型, 公开, 执行指定的代码文本。返回真为执行正常,返回假为出错,错误信息可以从“错误信息”属性中取得。
  70. .参数 脚本代码, 文本型, , 可使用常量 #md5

  71. 脚本对象.数值方法 (“ExecuteStatement”, 脚本代码)
  72. 返回 (脚本对象.取错误 () = “”)

  73. .子程序 计算表达式, 文本型, 公开, 计算表达式并返回结果。
  74. .参数 表达式, 文本型

  75. 返回 (脚本对象.文本方法 (“Eval”, 表达式))


  76. .子程序 清除, , 公开

  77. 脚本对象.数值方法 (“Reset”, )

  78. .子程序 未封装的属性及方法

  79. ' 类型: IScriptControl  10个属性,6个方法,标记: {0E59F1D3-1FBE-11D0-8FF2-00A0D10038BC}
  80. ' -------------------------------- 属性列表 --------------------------------
  81. ' 属性读取格式: 〈逻辑型〉 对象.读逻辑属性 ("UseSafeSubset")
  82. ' 属性写入格式: 〈逻辑型〉 对象.写属性 ("UseSafeSubset",欲写入属性值)
  83. ' 参数<1>的名称为“欲写入属性值”,类型为“逻辑型”。
  84. ' 解释:Force script to execute in safe mode and disallow potentially harmful actions


  85. ' 属性读取格式: 〈对象(IScriptModuleCollection)〉 对象.读对象型属性 ("Modules")
  86. ' 解释:Collection of modules for the ScriptControl

  87. ' 属性读取格式: 〈对象〉 对象.读对象型属性 ("CodeObject")
  88. ' 解释:Object exposed by the scripting engine that contains methods and properties defined in the code added to the global module


  89. ' 属性读取格式: 〈对象(IScriptProcedureCollection)〉 对象.读对象型属性 ("Procedures")
  90. ' 解释:Collection of procedures that are defined in the global module


  91. ' -------------------------------- 方法列表 --------------------------------
  92. ' 方法调用格式: 〈整数型〉 对象.数值方法 ("AddObject",Name,Object,AddMembers)
  93. ' 参数<1>的名称为“Name”,类型为“文本型”。
  94. ' 参数<2>的名称为“Object”,类型为“对象”。
  95. ' 参数<3>的名称为“AddMembers”,类型为“逻辑型”,参数默认值为“假”。
  96. ' 解释:Add an object to the global namespace of the scripting engine

复制代码
  1. .版本 2

  2. .程序集 错误信息, , 公开
  3. .程序集变量 对象, 对象

  4. .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用



  5. .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用

  6. 清除 ()
  7. 对象.清除 ()

  8. .子程序 初始化, , 公开
  9. .参数 错误对象, 对象

  10. 对象 = 错误对象

  11. .子程序 错误代码, 整数型, 公开

  12. 返回 (对象.读数值属性 (“Number”, ))

  13. .子程序 错误源, 文本型, 公开

  14. 返回 (对象.读文本属性 (“Source”, ))

  15. .子程序 错误描述, 文本型, 公开

  16. 返回 (对象.读文本属性 (“Description”, ))

  17. .子程序 错误代码行文本, 文本型, 公开

  18. 返回 (对象.读文本属性 (“Text”, ))

  19. .子程序 错误代码行位置, 整数型, 公开

  20. 返回 (对象.读数值属性 (“Line”, ))

  21. .子程序 错误代码列位置, 整数型, 公开

  22. 返回 (对象.读数值属性 (“Column”, ))

  23. .子程序 清除, , 公开, 清除错误对象

  24. 对象.数值方法 (“Clear”, )

  25. .子程序 错误查阅帮助文件名, 文本型, 公开

  26. 返回 (对象.读文本属性 (“HelpFile”, ))

  27. .子程序 错误查阅帮助文件上下文ID, 整数型, 公开

  28. 返回 (对象.读数值属性 (“HelpContext”, ))

复制代码

作者: Cand    时间: 2012-6-3 20:14
_  _  汗菜鸟飘过
作者: 腐蚀    时间: 2012-6-3 20:19
易团僧 发表于 2012-6-3 20:14
_  _  汗菜鸟飘过

不说你是菜鸟,是人看到这么大串的源码头也晕了
作者: Cand    时间: 2012-6-3 20:31
j874574675 发表于 2012-6-3 20:19
不说你是菜鸟,是人看到这么大串的源码头也晕了

真不会   脚本、、、
作者: ZealotMaster    时间: 2012-6-3 20:42
易团僧 发表于 2012-6-3 20:31
真不会   脚本、、、

。。。。。。
那个……能不能帮忙看下理论上有木有什么问题……
@千年 @微风吹 @迷离 @易团僧 @蟋蟀 @exit11
作者: ZealotMaster    时间: 2012-6-4 20:44
j874574675 发表于 2012-6-3 20:19
不说你是菜鸟,是人看到这么大串的源码头也晕了

那你说我是菜鸟……而且那些类源码是没问题的……就是执行线程运行时有问题……
作者: 腐蚀    时间: 2012-6-4 21:11
新来的小子 发表于 2012-6-4 20:44
那你说我是菜鸟……而且那些类源码是没问题的……就是执行线程运行时有问题……

我没说你是菜鸟额,我是菜鸟,你要弄清楚我话的意思啊,我说我菜鸟,看到这么串源码头晕
作者: Xiao白    时间: 2012-6-5 02:43
[fly]线程启动的子程序 执行前 加载COM()  试试![/fly]
作者: ZealotMaster    时间: 2012-6-5 12:06
baims 发表于 2012-6-5 02:43

没看到这个命令……而且……我不是写了么…………




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4