MSScriptControl.ScriptControl控件使用问题

本文介绍了解决WindowsServer2008R2环境下MSScriptControl.ScriptControl控件出现的兼容性问题的过程。问题源于x86与x64版本不匹配,通过调整注册表权限及IIS应用程序池设置得以解决。

Windows Server 2008 R2,  MSScriptControl.ScriptControl控件使用的时候一直提示如下错误:

检索 COM 类工厂中 CLSID 为 {0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。 

查找半天原因,结果是因为该控件是x86的版本,而我的程序是x64编译的。所以存在版本不兼容问题。这个时候需要在注册表中找到该注册控件,打开注册表,在注册表中查找{0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 这个值找到了MSScriptControl.ScriptControl ,然后右键设置权限(加入 everyone权限和 IUSER IIS账号权限)。然后再IIS里面对应的应用程序池“高级设置”->“启用32位应用程序(设置为true)”,重启IIS就行了。

在VB6中,`CreateObject` 函数主要用于创建和调用ActiveX对象,而`"MSScriptControl.ScriptControl"`就是这样一个用于执行JavaScript脚本的ActiveX控件。你可以使用这个对象来在VB6环境中嵌入JavaScript并调用其功能,包括字符串的UTF-8编码。下面是一个基本的步骤来实现这个功能: 1. 创建`ScriptControl`对象: ```vba Set JsCtrl = CreateObject("MSScriptControl.ScriptControl") JsCtrl.Language = "JScript" ``` 在这里,我们设置了语言为JavaScript (`Language`属性)。 2. 编写JavaScript函数来执行UTF-8编码: ```javascript ' 在JavaScript中定义一个函数,接收一个字符串参数 Function EncodeUTF8(strInput) EncodeUTF8 = encodeURIComponent(strInput); // JavaScript中的encodeURIComponent会将字符串转换成URI编码,其中包括UTF-8编码 End Function ' 在VB6中调用这个JavaScript函数 JsCtrl.CodeModule.AddLines "function EncodeUTF8(strInput) { ... }" ' 首次运行时添加函数 Dim Utf8EncodedString As String Utf8EncodedString = JsCtrl.Eval("EncodeUTF8('" & YourString & "')") ' YourString是你想要编码的VB6字符串 ``` 注意 `JsCtrl.Eval` 方法执行了JavaScript代码并将结果返回给VB6。 3. 结果处理: 获取到编码后的字符串后,你可以根据需要保存或使用它。 **相关问题:** 1. 如何在VB6中通过`ScriptControl`调用JavaScript函数? 2. JavaScript中的哪些方法可以用来进行字符串编码? 3. 如何确保VB6中传入`ScriptControl`的字符串型正确?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值