问题标签 [msscriptcontrol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 从 MSScriptControl.ScriptControlClass 调试 VBScript,更改 DefaultAppPool 注册表
我有 ASP.NET 应用程序,我在其中使用 MSScriptControl.ScriptControlClass 来执行 VBScript。但是,当 Eval() 函数运行脚本时,断点 ('stop') 会被忽略。我希望看到 JITDebugger 被触发,这将允许我使用 Microsoft Script Debugger 来调试脚本。有没有人有类似的问题?
编辑:经过一番调查,我发现由于我们的 IIS 设置(我们正在使用 Windows 身份验证),ASP.NET 工作进程作为 DefaultAppPool 运行,并且没有与登录用户相同的权限或注册表设置。所以我想现在的问题是“如何更改 DefaultAppPool 用户的注册表项?”
EDIT2:我在单独的线程中问了这个问题并得到了答案: 如何更改 DefaultAppPool 的注册表项?
variables - 使用 msscript 控件获取 vbscript 中的所有变量值
有没有办法在运行时获取脚本中的所有变量值。
考虑以下 vbscript 代码。
我如何使用 msscript 控件实现它,我应该能够在运行时检索所有变量?
我正在寻找为 vbscript 实现调试器,我可以在运行时获得所有变量的列表,如下所示。
对此的任何帮助将不胜感激。
提前致谢!
javascript - 如何创建能够引用封闭变量/函数的动态对象成员?
我将如何以将其包装在闭包中的方式创建动态对象,然后再将成员添加到能够引用封闭变量的对象中?
如本例所示,test.myFunct()
不能引用封闭的example
变量:
所以我尝试创建一个加法器函数,希望能解决这个问题,但无济于事:
有没有办法在运行时后期动态地将成员添加到可以引用封闭成员的对象?
为什么需要它:
我正在使用mIRC 的COM 实现来访问MSScriptControl.ScriptControl
jScript 引擎。由于使用 mIRC 的限制,我被限制为从 mIRC 执行的每个命令约 4k 字节。因此,在调用ScriptControl
's AddCode
、ExecuteStatement
或Eval
方法之前,我需要将我的 JS 文件分解为大约 3500 字节或更小的块。
备注:
我宁愿不必使用返回包含的变量/函数的值的静态“助手”函数。
vbscript - 我们如何使用 msscript.ocx 以编程方式知道语法错误?
我已经使用 c# 实现了 msscript.ocx,它适用于 VBScript。
考虑以下 VBScript 代码:
我们如何在不运行脚本的情况下判断包含If
(missing ) 的行中是否存在错误?Then
msscriptcontrol - 如何将 DLL 导入到 MSScriptControl.ScriptControl
我有一个关于 MS 脚本控件的查询,我有一个 VB6 程序,它使用 MSScript 控件来允许用户在应用程序中编写宏。
我的问题是如何将 DLL 导入 MSScriptControl.ScriptControl 类型的对象。
c# - 为 vbscript 实现即时窗口
我已经使用 C# 实现了一个调试器。它使用 MSSCRIPT.ocx 作为 vbscript 引擎。谁能告诉我如何在其中实现即时窗口功能。
所需功能:
应该显示所有可用变量及其值:
例如
[断点]
在命中断点时,立即窗口应显示 i=1 , j=3
有什么方法可以在运行时从 vbscript 代码中获取变量?
vb6 - 如何检查脚本是否使用 MSScriptControl 定义了特定的类或属性?
我目前正在对使用MSScriptControl
. 它以文件名作为输入,然后获取在所述文件中定义的Property
a 中定义的一些字符串。Class
这是当前代码:
这是输入脚本文件的相关部分:
以上内容通过 加载到sScriptCode
变量中FileSystemObject.OpenTextFile()
。
using 的全部目的是通过实例化和 usingScriptControl
来获取文件的 Class PropertiesPropStringA
和中定义的字符串。PropStringB
Class
ScriptControl.Eval
这是我的问题:这个(hack)有效,但有没有更好、更精致的方法让我检查输入脚本是否真的包含我需要的东西,特别是Class
定义和Public Get Property
(ies)?如果文件不是空白但实际上不包含 VB 代码,比如文本文件,那该怎么办?
奖励:我应该在CodeReview上问这个吗?
vb6 - 当 UseSafeSubset 为真时,我不能使用什么?
当我MSScriptControl
在 VB6 中使用 an 和 setUseSafeSubset = True
时,我不能做什么样的事情?我的意思是,我不能使用哪些控件?或者某些核心对象可能无法实例化或使用?也许我不能 CRUD 文件?请给我一份明确的清单。
这个线程讲述了注册表中的一个特殊标志,它设置了哪些控件在 时被阻止UseSafeSubset = True
,但它没有详细说明。它说应该很容易搜索,但两天的谷歌搜索一无所获。
eval - wscript下全局范围内的eval
有没有办法eval()
从函数调用中完全模拟全局调用?我尝试了各种方法,但找不到适用于 wscript 的合适解决方案:
我尝试过的其他方法:
vbscript - 通过 c#.net 将 VB6 类从 dll 传递到 vb 脚本
我有一个包含 VB6 类(.cls 文件)的 dll。
我有一个使用这些类的 VB 脚本。
我有一个使用 Microsoft Script Control 库运行脚本的 C#.Net 程序(参考: http: //osherove.com/blog/2004/2/17/make-your-net-application-support-scripting-a-practical -appr.html )
这是我的代码:
MyClass 是具有 [ComVisible(true)] 的 VB6 类的 C# 等价物
我想知道是否不是创建我自己的对 COM 可见的 C# 类,我的代码是否可以使用 dll 中的 VB6 类并将其传递给脚本,如果是,如何?
更新: 我已经注册了所有需要的 COM 组件,现在我可以引用 COM dll。但是,当我尝试在 COM dll 中实例化该类的对象时,我收到错误 80040154 未在运行时注册的类