|
|

楼主 |
发表于 2014-10-23 12:13
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
说到skey和bkn,索性再唠叨一下用IE获取Cookie的例子。
QQ的skey用winhttp比较难以获取,当中包含了一些复杂的js算法。
不过没关系,我们可以利用IE。当然,你的QQ软件需要先登录。
手工用IE打开http://xui.ptlogin2.qq.com/div/qlogin_div.html,如果提示安装控件请下载安装。
运行下面的代码即可得到登录QQ的skey值。
如果登录了多个QQ,代码里需要加上判断。这个代码我就不写了,是IE的用法,不在本帖讨论的范围内。- Sub Main()
- Dim objDoc As Object
- Dim strText As String
- Dim skey As String, t
-
- With CreateObject("InternetExplorer.Application")
- .Navigate "http://xui.ptlogin2.qq.com/div/qlogin_div.html"
- While .readystate <> 4 Or .busy: Wend
- For Each objDoc In .Document.getelementsbytagname("INPUT")
- If objDoc.Type = "submit" Then Exit For
- Next
- objDoc.Click
- t = Timer
- While Timer < t + 4: Wend
- strText = .Document.cookie
- .Quit
- End With
- Debug.Print strText
- skey = Split(Split(strText, "skey=")(1), ";")(0)
- Debug.Print skey
- End Sub
复制代码 试试看,能不能获取到skey。
顺便分享下获取bkn的代码:- Function GetBkn(skey As String) As String
- With CreateObject("MSScriptControl.ScriptControl")
- .Language = "javascript"
- GetBkn = .Eval("bkn=function(a){for(var c=5381,b=0,d=a.length;b<d;++b)c+=(c<<5)+a.charAt(b).charCodeAt();return c&2147483647}('" & skey & "');")
- End With
- End Function
复制代码 |
评分
-
3
查看全部评分
-
|