ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: liucqa

VBA调用JS函数的几个方法

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-2 17:47 | 显示全部楼层
本帖已被收录到知识树中,索引项:脚本语言应用
大师,能帮我诊断下这个段过程在哪里出问题了嘛,研究了好几天一直没成功,万分感谢!!!思路:想调用网页的加密函数encryptByDES(message, key)对账号密码进行加密,然后作为post的数据登录网页。
附件是网页上下载的加密需要用到的js文件和宏,可以的话能指导下怎么实现调用js加密功能嘛,谢谢。

Dim strText, strJS, strJSFun As String
Sub js()
'获取密钥,此处可正常获取,直接贴密钥。
key1 = "11b265d969ea48269feb5c9e46ba58ef"

With CreateObject("Microsoft.XMLHTTP")                                                           '获取加密函数function encryptByDES(message, key)
    .Open "GET", "http://XXXX/resources/static/js/login/login.js", False
    .send
    strJS = .responsetext
    strJSFun = Mid(strJS, InStr(strJS, "function encryptByDES(message, key)"))     '从js文件中提取函数encryptByDES(message, key)
    temp = InStr(strJSFun, "function setPassPlaceholder()") - 1
    strJSFun = Left(strJSFun, temp)
    Range("a1") = strJSFun                                                                                    
    strJSFun = Replace(strJSFun, "(message, key)", "(message=123456789, key=key1)") '把加密函数的参数替换为需要加密的账号和密钥
    Range("b1") = strJSFun                                                          '调试:打印加密函数

                                                                                     '获取加密需要的js文件
    .Open "GET", "http://XXXX/resources/static/cryptojs/rollups/tripledes.js", False
    .send
    strJS = .responsetext

    .Open "GET", "http://XXXX/resources/static/cryptojs/components/mode-ecb.js", False
    .send
    strJS = strJS & ";" & .responsetext
End With

a = JSEval(strJS & ";" & strJSFun & ";")                  'a应该为加密后的账号
Debug.Print a
End Sub

‘JavaScript执行环境函数
Function JSEval(s As String) As String
With CreateObject("MSScriptControl.ScriptControl")
    .Language = "javascript"
    JSEval = .Eval(s)                          ’这一句出错,提示少”)“,检查不出哪里有问题。
    Debug.Print JSEval
End With
End Function


vba调用网页JavaScript.rar

23.52 KB, 下载次数: 54

vba调用网页JavaScript

TA的精华主题

TA的得分主题

发表于 2019-12-20 11:25 | 显示全部楼层
我也试了一下,跟你一样的问题,最后都提示出错? 感觉HMTL有容错机制,但使用这个代码执行JS代码切没有容错机制,导致执行失败。需要专家出场才能解决

TA的精华主题

TA的得分主题

发表于 2020-3-22 14:45 | 显示全部楼层
下载解压缩失败

点评

用rar5  发表于 2020-3-22 23:23

TA的精华主题

TA的得分主题

发表于 2020-3-23 13:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
非常感谢!
大师能解决这个问题吗?
‘JavaScript执行环境函数,这个经常会提示报错,主要是JS代码段没有容错机制,能办法解决?
Function JSEval(s As String) As String
With CreateObject("MSScriptControl.ScriptControl")
     .Language = "javascript"
    JSEval = .Eval(s)                          ’这一句出错,提示少”)“,检查不出哪里有问题。
    Debug.Print JSEval
End With
End Function

TA的精华主题

TA的得分主题

发表于 2020-5-8 20:55 | 显示全部楼层
下载解压缩失败

想问下大神,网抓的时候,请求头的
.setRequestHeader "Authorization", "xxxxxx"
这里的xxxxs刷新一下就变了
好像网站有2个js是用来加密的。加密里面有时间戳

有啥好办法获得网站上js的数据吗

TA的精华主题

TA的得分主题

发表于 2022-5-13 20:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-5-13 23:19 | 显示全部楼层
cy_ttcm 发表于 2020-5-8 20:55
下载解压缩失败

想问下大神,网抓的时候,请求头的

下断点把那段代码抠出来,吧里有一个大神很擅长,昵称:wodewan           
我反正是不行,上次试了一个抠了一星期才成功,没找到窍门

TA的精华主题

TA的得分主题

发表于 2022-10-21 20:14 | 显示全部楼层
本帖最后由 lqh123109 于 2022-10-21 20:25 编辑

image.jpg

这个调用看不懂?

loadjscriptfromfile 这个是纯粹读取的JS代码吗


    Declare Function RunJSScriptFuncVars Lib "JSDotNetAPI86.dll" (ByVal funcname As String, VariantPtrIns As Any, count As LongPtr, VariantPtrOut As Any, ReturnAsString As Boolean) As Boolean

用户类型未定久

另外2个DLL文件要放哪里?要安装注册?程序中好像没有调用它们呀?

TA的精华主题

TA的得分主题

发表于 2023-6-10 10:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-6-10 14:23 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 21:12 , Processed in 0.038081 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表