222222 发表于 2012-3-19 03:12:07

[已解决]ObjCreate的错误?还是ScriptControl的错误?

本帖最后由 222222 于 2012-3-19 04:02 编辑

http://www.autoitx.com/forum.php?mod=viewthread&tid=27656
下载了附件,运行代码如下:
         Local $code
      $key='CHSM'
      $ujiap='5436413'
      $code = FileRead("md5.js")
      $nJS = ObjCreate("MSScriptControl.ScriptControl")
      $nJS.language = "JavaScript"
      $nJS.addcode($code)
      $nReg = $nJS.eval('hex_hmac_md5("'&$key&'",str_md5("'&$ujiap&'"))')
      MsgBox(0,0,$nReg)

控制台出现错误提示:
F:\au3\test6.au3 (6) : ==> ???????????("Object").:
$nJS.language = "JavaScript"
$nJS^ ERROR
->03:02:21 AutoIT3.exe 完成::1
+>03:02:22 ACNWrapper 完成..
>退出代码: 1        运行时间: 1.934 秒


出错后,采取了如下措施:
1、找到了其他调用这一语句的代码试运行。结果依然是这里出错。
2、重新到微软官方网站下载了Windows Script Control 并安装。结果错误依旧。
3、考虑到我是用的win7的64位旗舰版,所以将程序编译后用管理员身份运行。结果错误依旧。
4、把论坛所有javascript、js、ObjCreate、MSScriptControl、ScriptControl关键词的帖子看了,竟然发现好像就我一个人运行代码时出现这情况……

222222 发表于 2012-3-19 03:37:26

5、尝试注册控件,win7管理员权限运行regsvr32 msscript.ocx成功,但是错误依旧。编译后的程序用用不同权限运行后的错误提示相同,均为:

Error:变量类型必须为对象类型(“Object”)

222222 发表于 2012-3-19 03:42:43

6、电脑WMI正常开启。没有经过优化什么的。

222222 发表于 2012-3-19 04:02:13

问题解决了。

编译时原来用的是默认的64位。现在用32位编译后正常。

cxlater 发表于 2016-4-11 12:03:48

楼主的一番研究也解决了我的问题
页: [1]
查看完整版本: [已解决]ObjCreate的错误?还是ScriptControl的错误?